В настоящее время у нас возникла проблема с проверкой сертификата Comodo SSL в кластере Ubuntu AWS. Браузеры нормально отображают сайт / контент и показывают всю соответствующую информацию о сертификатах (по крайней мере, все те, которые мы проверили), но некоторые сетевые прокси и онлайн-средства проверки SSL показывают, что у нас неполная цепочка.
Мы попытались решить эту проблему следующим образом:
Файл ".pem" проверяет ОК с помощью openssl. Различные промежуточные и корневые сертификаты установлены и отображаются в / etc / ssl / certs. Но чеки по-прежнему возвращаются с неполной цепочкой.
Может ли кто-нибудь посоветовать что-нибудь еще, что мы можем проверить, или любые другие изменения, которые мы можем внести, чтобы попытаться исправить это?
Спасибо заранее...
ОБНОВИТЬ: Единственная релевантная строка из haproxy.cfg (я полагаю) - это:
bind *:443 ssl crt /etc/ssl/domainaname.com.pem
ОБНОВЛЕНИЕ 2: Вывод из openssl s_client
CONNECTED(00000003)
depth=0 OU = Domain Control Validated, OU = COMODO SSL, CN = www.domainname.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 OU = Domain Control Validated, OU = COMODO SSL, CN = www.domainname.com
verify error:num=27:certificate not trusted
verify return:1
depth=0 OU = Domain Control Validated, OU = COMODO SSL, CN = www.domainname.com
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
0 s:/OU=Domain Control Validated/OU=COMODO SSL/CN=www.domainname.com
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO SSL CA
Ниже приводится содержание www.domainname.com.pem
(упоминается в конфигурации haproxy).
Bag Attributes
localKeyID: 01 00 00 00
friendlyName: www.domainname.com
subject=/OU=Domain Control Validated/OU=COMODO SSL/CN=www.domainname.com
issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO SSL CA
-----BEGIN CERTIFICATE-----
[...]
-----END CERTIFICATE-----
-----BEGIN INTERMEDIATE CERTIFICATE-----
[...]
-----END INTERMEDIATE CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
[...]
-----END RSA PRIVATE KEY-----
Правильный порядок включения промежуточных сертификатов:
-----BEGIN PRIVATE KEY-----
[Your private key]
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
[Your certificate]
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
[Intermidate#1 certificate]
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
[Intermidate#2 certificate]
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
[Root certificate]
-----END CERTIFICATE-----
awk 1 ORS='\\n' ~/your_path/cert.pem
копировать строку
и вставьте в docker-compose.yml
как это:
proxy:
image: tutum/haproxy
ports:
- "80:80"
- "443:443"
environment:
- "DEFAULT_SSL_CERT=-----BEGIN PRIVATE KEY-----\nMIIEvQIBADA......"
links:
- webapp
Для меня это работа.
FWIW, мне удалось разобраться в этом. Проблема заключалась в разделителях, которые я использовал для различных сертификатов в моем .pem
файл.
Разделитель должен быть точно -----BEGIN/END CERTIFICATE-----
- никаких "ПРОМЕЖУТОЧНЫХ" или "КОРНЕЙ" или чего-либо в этом роде.
Также рабочий .pem
ведь HAProxy включает в себя все промежуточные и корневые сертификаты в моей цепочке - казалось, это единственный способ получить их все.