Траблшутинг сертификатов и TLS в SIP: схемы SIPS URI, ошибки Handshake
- Сбой регистрации IP-телефона по TLS с ошибкой
SSL routines:ssl3_get_server_certificate:certificate verify failed. - Разрыв TLS-сессии во время Handshake (Alert: Unknown CA / Handshake Failure).
- Ошибки маршрутизации при использовании защищенной схемы
sips:user@domain.com. - Истечение срока действия X.509 сертификата блокирует работу корпоративной телефонии.
1. Проверка доступности и сертификата через OpenSSL CLI
openssl s_client -connect sip.company.com:5061 -showcerts -CAfile /etc/ssl/certs/ca-certificates.crtПроверьте вывод на наличие ошибок: Verify return code: 0 (ok).
2. Требования к схеме SIPS URI (RFC 3261 Section 26.2)
Схема sips: требует строго сквозного TLS-шифрования на всех участках маршрута. Если следующий узел работает по обычному sip: UDP, прокси обязан отклонить вызов с кодом 480 Temporarily Unavailable.
3. Конфигурация TLS транспорта в Asterisk PJSIP
# 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/ssl/certs/ca-certificates.crt
method=tlsv1_2
# Для отключения строгой проверки клиентских сертификатов телефонов:
verify_client=no
verify_server=yes4. Исправление несовпадения доменного имени (SAN / CN mismatch)
Сертификат PBX обязан содержать полное доменное имя (FQDN) сервера в поле Subject Alternative Name (SAN). Если телефон подключается по IP, а сертификат выписан на домен, телефон отклонит подключение.
Частые вопросы (FAQ)
Можно ли использовать самоподписанные сертификаты для SIP TLS?
Можно, но публичный сертификат CA (корневого центра сертификации), выпустившего самоподписанный сертификат, должен быть вручную импортирован во флеш-память каждого IP-телефона.
Почему Let's Encrypt вызывает сбои на некоторых старых IP-телефонах?
Устаревшие модели телефонов (например, Cisco SPA или старые Yealink) не имеют в своей прошивке обновленного корневого сертификата ISRG Root X1, что приводит к сбою проверки цепочки доверия.
В чем разница между SIP over TLS на порту 5061 и схемой SIPS?
SIP over TLS — это транспортный механизм (безопасный сокет). SIPS — это логическая схема URI в заголовках, накладывающая строгие правила обязательного шифрования всего тракта до целевого абонента.
Как включить двустороннюю проверку сертификатов (mTLS)?
Установите verify_client=yes на сервере и загрузите уникальный клиентский сертификат и приватный ключ в настройки учетной записи IP-телефона.