Certifikáty od Let's Encrypt

tls,srtp,zrtp a bezpečnostní potíže VoIP
Odpovědět
LubosD
Příspěvky: 171
Registrován: pát 06. úno 2015 10:41:27

Certifikáty od Let's Encrypt

Příspěvek od LubosD »

Zdravím,

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 :D

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.
MaT
Příspěvky: 364
Registrován: pát 29. bře 2013 14:35:14

Re: Certifikáty od Let's Encrypt

Příspěvek od MaT »

Proč certifikáty kopírovat? Nebylo by lepší do onoho adresáře k certifikátům dát uživateli, pod kterým Asterisk běží, prostě jen potřebná práva (stačí na čtení)? Eventuálně pokud je Asterisk opravdu očekává v nějakém adresáři, tak bych je symlinkoval...
LubosD
Příspěvky: 171
Registrován: pát 06. úno 2015 10:41:27

Re: Certifikáty od Let's Encrypt

Příspěvek od LubosD »

MaT píše:Proč certifikáty kopírovat? Nebylo by lepší do onoho adresáře k certifikátům dát uživateli, pod kterým Asterisk běží, prostě jen potřebná práva (stačí na čtení)? Eventuálně pokud je Asterisk opravdu očekává v nějakém adresáři, tak bych je symlinkoval...
Dokonce i v návodu certbotu se navrhuje napsat si v tomto případě deploy hook a certifikáty okopírovat, kam je třeba a pod jakými právy je třeba. Já to místo deploy hooku kopíruju přímo v cronu, aspoň mám trochu přehled o tom, co se děje, protože na ten hook bych brzo zapomněl.

Ale jo, možná by to šlo, jenom tenhle primitivní způsob vyšel snáze.
Odpovědět