У меня проблемы с настройкой SSL на 32-битном сервере Debian 6.0. Я относительно новичок в использовании SSL, так что терпите меня. Я включаю столько информации, сколько могу.
Примечание. Настоящее доменное имя было изменено для защиты идентичности и целостности сервера.
Конфигурация
Сервер работает с использованием nginx. Он настроен следующим образом:
ssl_certificate /usr/local/nginx/priv/mysite.ca.chained.crt;
ssl_certificate_key /usr/local/nginx/priv/mysite.ca.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_verify_depth 2;
Я привязал свой сертификат, используя метод, описанный здесь
cat mysite.ca.crt bundle.crt > mysite.ca.chained.crt
где mysite.ca.crt
сертификат, предоставленный мне органом подписи, и bundle.crt
сертификат CA, также отправленный мне моим органом подписи. Проблема в том, что я приобрел сертификат SSL не напрямую у GlobalSign, а через моего хостинг-провайдера Singlehop.
Тестирование
Сертификат правильно проверяется в Safari и Chrome, но не в Firefox. Первоначальный поиск показал, что это может быть проблема с центром сертификации.
Я исследовал ответ на аналогичный вопрос , но не смог найти решения, так как не совсем понимаю, для чего служит каждый сертификат.
Я использовал openssl s_client для проверки соединения и получил вывод, который, похоже, указывает на ту же проблему, что и аналогичный вопрос . Ошибка следующая:
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=27:certificate not trusted
verify return:1
Полную информацию об ответе openssl (с сокращенными сертификатами и ненужной информацией) можно найти здесь .
Я также вижу предупреждение:
No client certificate CA names sent
Возможно ли, что в этом проблема? Как я могу гарантировать, что nginx отправляет эти имена CA?
Попытки решить проблему
Я попытался решить проблему, загрузив корневой ЦС непосредственно из GlobalSign, но получил ту же ошибку. Я обновил корневой ЦС на своем сервере Debian с помощью этой update-ca-certificates
команды, но ничего не изменилось. Вероятно, это связано с тем, что CA, отправленный моим провайдером, был правильным, поэтому это привело к двойному связыванию сертификата, что не помогает.
0 s:/OU=Domain Control Validated/CN=*.mysite.ca
i:/C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
1 s:/O=AlphaSSL/CN=AlphaSSL CA - G2
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
2 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
Следующие шаги
Пожалуйста, дайте мне знать, если я могу что-то попробовать, или я просто все неправильно настроил.
AlphaSSL CA - SHA256 - G2
. Однако ваша сеть поставляет промежуточные продуктыAlphaSSL CA - G2
. Я считаю, что вам нужно удалить текущий промежуточный сертификат (AlphaSSL CA - G2
) и заменить его сертификатом с отпечатком пальцаae:bf:32:c3:c8:32:c7:d7...
(AlphaSSL CA - SHA256 - G2
). Также отправлять не нужноGlobalSign Root CA
. Клиент должен внедрять свои доверительные отношения (или на промежуточное звено).openssl s_client -connect <server>:<port> -CAfile <GlobalSign Root CA.pem>
. Команда должна заканчиватьсяVerify OK (0)
или подобным. Когда вы получитеVerify OK (0)
, сервер настроен правильно (для этой проблемы).openssl x509 -in gsalphasha2g2.crt -inform DER -out Alpha-SHA256-G2.pem -outform PEM
.i:
иs:
подs_client
. Получив необходимые сертификаты, объедините их все, кроме корневого. Поскольку они объединены, они должны быть в формате PEM. URL-адрес был полезен. Стареет пытаться помочь людям, которые не предоставляют информацию, чтобы мы могли посмотреть на нее локальноs_client
. (Если бы вы не указали URL-адрес, я бы проголосовал за закрытие).Ответы:
jww прав - вы ссылаетесь не на тот промежуточный сертификат.
Поскольку вам был выдан сертификат SHA256, вам понадобится промежуточное звено SHA256. Вы можете скачать его здесь: http://secure2.alphassl.com/cacert/gsalphasha2g2r1.crt
источник
Если вы являетесь пользователем Linux Обновите узел до более поздней версии, запустив
это должно решить вашу проблему
источник