dobře vím, že už máte SIP/TLS na dvou různých portech s různými certifikáty, tak se vám to asi nebude chtít zase měnit nebo rozšiřovat
Ale jen bych rád zmínil, že bezplatné certifikáty Let's Encrypt dobře fungují s Asteriskem a SIP klienty (např. Zoiperem). Klient se pak vůbec nemusí zabývat důvěryhodností certifikátů, nějak to kontrolovat proti CA certu na Odoričí wiki atp., jede to out of box, žádná varování a další problémy. V podstatě to jede tak dobře, že si pak můžete dovolit doporučovat TLS/SRTP všem lidem, nikoliv jen fajnšmekrům.
Postup pro Asterisk:
- Na doméně SIP serveru musí být web server pro správné fungování ACME (ověření Let's Encrypt, zda jste držitelem dané domény). To tu nebudu rozebírat, návodů pro rozchození je plný Internet.
- Typicky si člověk dává do /etc/cron.weekly skript pro automatickou obnovu certifikátů (protože ty mají platnost jen 3 měsíce). Jelikož proces Asterisku obvykle neběží pod rootem, a tak nemá přístup do /etc/letsencrypt/live, je nutné nakopírovat fullchain.pem a privkey.pem tam, kde se k tomu Asterisk dostane. Asterisk je v tomhle pekelně zrádný, protože pokud nemůže tyto soubory otevřít, tak nenapíše "Permission denied", ale obecnou chybu TLS certifikátu a vy se pak divíte, co je s certifikátem špatně. Takže já mám v cronu tohleto:
Kód: Vybrat vše
#!/bin/sh DIR=/var/www/letsencrypt-auto/ certbot renew --webroot -w $DIR --rsa-key-size 4096 /etc/init.d/nginx reload /etc/init.d/postfix reload /etc/init.d/dovecot reload # ASTERISK srcdir=/etc/letsencrypt/live/zeus.dolezel.info cp $srcdir/privkey.pem /etc/asterisk/tls/server/ cp $srcdir/fullchain.pem /etc/asterisk/tls/server/ chown asterisk:asterisk /etc/asterisk/tls/server/*.pem /etc/init.d/asterisk reload
- Důležité je opravdu používat fullchain.pem, nikoliv cert.pem, protože kořenový certifikát Let's Encrypt nemá např. v Zoiperu na Androidu důvěru.
- Dále je třeba udělat obvyklé věci, takže nastavit tlsbindaddr,tlsenable,tlscertfile a tlsprivatekey.