Перейти к содержимому
Документация· Обновлено 15 окт. 2026 г.

Неполная цепочка сертификатов TLS — как исправить

Браузер открывает сайт, а curl, Android и API-клиенты — нет. Причина — сервер не отдаёт промежуточный сертификат.

Что не так

Сервер отдаёт только сертификат сайта без промежуточного (intermediate). Десктопные браузеры часто достраивают цепочку сами, поэтому «у меня всё открывается». А curl, Java, Go, старые Android, вебхуки платёжных систем падают с unable to get local issuer certificate.

Как исправить

Отдавайте fullchain — сертификат сайта + промежуточные (корневой не нужен).

nginx

ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;  # не cert.pem
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

Apache 2.4.8+: SSLCertificateFile — тот же fullchain.

Сертификат от УЦ (не Let's Encrypt): склейте файлы в порядке «сайт → промежуточные»:

cat example.com.crt intermediate.crt > fullchain.pem

После nginx -t && nginx -s reload проверьте в SSL Checker: цепочка должна быть полной.

Проверка из консоли: openssl s_client -connect example.com:443 -servername example.com -showcerts — должно быть больше одного сертификата.