Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

TLS_SRTP_HANDSHAKE_FAIL IP-Телефония и СКУД

Развертывание шифрования звонков SIP TLS и SRTP в Asterisk (Yealink, Grandstream, Fanvil)

Обновлено: 24.08.2026 · Официальная документация ↗
  • Ошибки регистрации телефонов: SSL_ERROR_SSL / Certificate verify failed.
  • Односторонняя слышимость или сброс вызова сразу после ответа при включенном media_encryption=sdes.
  • В дампе sngrep сигнальные пакеты отображаются в открытом виде вместо защищенного TCP/TLS потока (порт 5061).

1. Генерация SSL/TLS сертификатов для Asterisk

Создайте самоподписанный CA и серверный сертификат с помощью скрипта ast_tls_cert:

mkdir /etc/asterisk/keys
cd /usr/src/asterisk/contrib/scripts || cd /usr/share/asterisk/scripts
./ast_tls_cert -C pbx.itstm.ru -O "ITSTM PBX" -d /etc/asterisk/keys
chown -R asterisk:asterisk /etc/asterisk/keys
chmod 600 /etc/asterisk/keys/*

2. Конфигурация TLS транспорта в /etc/asterisk/pjsip.conf

[transport-tls]
type=transport
protocol=tls
bind=0.0.0.0:5061
cert_file=/etc/asterisk/keys/asterisk.crt
priv_key_file=/etc/asterisk/keys/asterisk.key
ca_list_file=/etc/asterisk/keys/ca.crt
method=tlsv1_2
require_client_cert=no
verify_client=no
verify_server=no

3. Конфигурация защищенного эндпоинта (SIP-аккаунта)

[101]
type=endpoint
context=from-internal
disallow=all
allow=alaw
allow=ulaw
transport=transport-tls
media_encryption=sdes
media_encryption_optimistic=no
auth=101-auth
aors=101-aor

[101-auth]
type=auth
auth_type=userpass
username=101
password=VeryStrongPassSecure2025!

[101-aor]
type=aor
max_contacts=1

4. Настройка аппаратных IP-телефонов (Yealink, Grandstream, Fanvil)

  • Yealink: В веб-интерфейсе Account → Register: TransportTLS, Port5061. Во вкладке Advanced: SRTPCompulsory (Обязательно).
  • Grandstream: В Account → SIP Settings → Basic Settings: SIP TransportTLS/TCP. В Audio Settings: SRTP ModeEnabled and Forced.
  • Fanvil: В Line → SIP: Transport ProtocolTLS. В Media Settings: RTP Encryption (SRTP)Mandatory.

5. Диагностика и проверка статуса шифрования в CLI

# Проверка статуса TLS транспорта
asterisk -rx "pjsip show transports"

# Проверка медиа-шифрования активного канала
asterisk -rx "pjsip show channel <channel_id>" | grep -i encryption
💡 Практика специалистов: Не используйте протоколы SSLv2, SSLv3 и TLSv1.0 в transport-tls из-за уязвимостей (POODLE, BEAST). Жестко фиксируйте method=tlsv1_2 или tlsv1_3 для соответствия стандартам безопасности PCI-DSS.

Частые вопросы (FAQ)

В чем разница между SIP TLS и SRTP?

SIP TLS шифрует сигнальный протокол управления вызовом (логины, пароли, набираемые номера, заголовки SIP) по порту TCP 5061. SRTP (Secure Real-time Transport Protocol) шифрует непосредственно голосовой RTP-трафик (аудиоданные).

Почему телефон отклоняет вызов при включенном verify_server=yes?

При включенной проверке сертификата телефон требует, чтобы имя хоста PBX точно совпадало с Common Name (CN) сертификата, а корневой CA-сертификат был предварительно загружен в доверенные сертификаты телефона.

Что такое media_encryption_optimistic?

Если установлено в 'yes', Asterisk попытается согласовать SRTP, но если удаленный клиент не поддерживает шифрование, вызов переключится в открытый RTP. Значение 'no' запрещает незашифрованные звонки.

Можно ли использовать бесплатные сертификаты Let's Encrypt для TLS в Asterisk?

Да. Укажите пути к /etc/letsencrypt/live/pbx.domain/fullchain.pem и privkey.pem в transport-tls, но не забывайте выполнять 'pjsip reload' после автообновления certbot.

Полезные материалы
Рекомендуем