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.