Tuesday, December 26, 2017

Сертификат Let's Encrypt для TLS+SRTP в FreePBX 12

Статья о том, как настроить TLS+SRTP с сертификатом Let's Encrypt для FreePBX 12
1. Генерируем сертификат для сервера.

Предварительно проверяем доступность сервера из интернета по порту 443 для outbound1.letsencrypt.org, outbound2.letsencrypt.org, mirror1.freepbx.org и mirror2.freepbx.org



Также отключаем apache, так как это нам не даст сделать сертификат командой ниже:

service https stop

Устанавливаем Let's Encrypt:
yum install git
cd /opt
git clone https://github.com/letsencrypt/letsencrypt

Идем в каталог и выполняем:
cd /opt/letsencrypt
./letsencrypt-auto certonly --standalone -d домен_сервера

Копируем каталог
cp /etc/letsencrypt/live/домен_сервера/* /etc/asterisk/keys

После генерации включаем  apache:
service httpd start

2. Теперь нам нужно сделать правильную цепочку для этого выполняем слияние файлов в такой последовательности.
cat privkey.pem > asterisk.pem
cat cert.pem >> asterisk.pem
cat chain.pem >> asterisk.pem
и в конце нужно добавить ROOT сертификат Let's Encrypt
tee -a chain.pem << END
-----BEGIN CERTIFICATE-----
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
-----END CERTIFICATE-----
END

3. Далее настраиваем файл /etc/asterisk/sip_general_custom.conf

tlsenable=yes
tlsbindaddr=0.0.0.0:5061
tlscertfile=/etc/asterisk/keys/ast.pem
tlsclientmethod=tlsv1
tlscipher=ALL


4. Перезапускаем asterisk и проверяем поключение с включеным TLS и SRTP на клиенте

service asterisk restart

Проверить, что сертификат отвечает на порту можно так:
openssl s_client -connect домен_сервера:5061 |  more

No comments:

Post a Comment