SSL: цепочка сертификатов серверов неполная

Я купил подстановочный знак PositiveSSL на сайте https://www.ssls.com/.

Я получил 3 файла .ca-bundle, .crt и .p7b.

Я настроил сертификаты с помощью NGINX, но получаю сообщение об ошибке:

"Цепочка сертификатов серверов неполная"

https://www.ssllabs.com/ssltest/analyze.html?d=api.billgun.com

Как я могу это исправить?


person Adam Halasz    schedule 14.11.2017    source источник
comment
Включили ли вы пакет ЦС в файл, на который указывает директива ssl_certificate вашего сервера?   -  person Richard Smith    schedule 14.11.2017
comment
Я настроил сертификаты с помощью NGINX, но получаю сообщение об ошибке. Было бы полезнее, если бы вы не только упомянули полученную ошибку, что вы настроили сертификаты в NGINX, но и как вы настроили сертификаты. Потому что неправильно, как, вероятно, проблема.   -  person Steffen Ullrich    schedule 14.11.2017


Ответы (2)


Цепочка сертификатов серверов неполная

означает, что у вас нет промежуточных сертификатов, срок действия сертификатов истек или они расположены в неправильном порядке.

Похоже, у вас нет промежуточных сертификатов: https://www.sslshopper.com/ssl-checker.html#hostname=https://api.billgun.com/.

Когда вы откроете свой сайт в браузере, вы увидите зеленый замок, потому что браузеры могут загружать отсутствующие промежуточные сертификаты, но другие инструменты не смогут подключиться, т.е. curl:

curl -I 'https://api.billgun.com/'
curl: (60) server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
More details here: http://curl.haxx.se/docs/sslcerts.html

or openssl:

openssl s_client -connect api.billgun.com:443
CONNECTED(00000003)
depth=0 OU = Domain Control Validated, OU = PositiveSSL Wildcard, CN = *.billgun.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 OU = Domain Control Validated, OU = PositiveSSL Wildcard, CN = *.billgun.com
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/OU=Domain Control Validated/OU=PositiveSSL Wildcard/CN=*.billgun.com
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA     Domain Validation Secure Server CA
---

Самый быстрый способ создать правильную цепочку:

  • откройте свой сайт в браузере
  • нажмите на зеленый замок и отобразите свойства сертификата
  • экспортировать каждый сертификат в цепочке (в вашем случае должно получиться 3 файла: -billguncom.crt, COMODORSADomainValidationSecureServerCA.crt, COMODORSACertificationAuthority.crt)
  • объедините файлы в порядке от листа до корневого сертификата:

    cat -- -billguncom.crt COMODORSADomainValidationSecureServerCA.crt COMODORSACertificationAuthority.crt > billgun_com.crt
    
  • установить новый сертификат на сервер

  • протестировать конфигурацию nginx nginx -t
  • перезапустить сервер service nginx restart
person mx0    schedule 14.11.2017

Существует инструмент для автоматизации процедуры создания пакета правильно связанных сертификатов. https://github.com/zakjan/cert-chain-resolver (я м автор.)

Использование:

cert-chain-resolver -o domain.bundle.pem domain.pem
  • domain.pem — ваш входной сертификат
  • domain.bundle.pem — это пакет сертификатов, который вы можете использовать в конфигурации вашего веб-сервера.
person zakjan    schedule 27.04.2021