Ошибка SSL: не удается получить сертификат локального эмитента

у меня возникли проблемы с настройкой 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. Первоначальный поиск показал, что это может быть проблема с CA.

Я исследовал ответ аналогичный вопрос, но не смог найти решение, так как я действительно не понимаю, какой цели служит каждый сертификат.

я использовал s_client openssl для проверки соединения и получил вывод, который, похоже, указывает на ту же проблему, что и подобный вопрос. Ошибка заключается в следующем:

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?

попытки решить проблему

Я попытался решить проблему, загрузив корневой 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

Следующие Шаги

пожалуйста, дайте мне знать, если есть что-нибудь, что я могу попробовать, или если у меня просто все настроено неправильно.

1 ответов


jww прав - вы ссылаетесь на неправильный промежуточный сертификат.

поскольку вам был выдан сертификат SHA256, вам понадобится промежуточный SHA256. Вы можете схватить его отсюда:http://secure2.alphassl.com/cacert/gsalphasha2g2r1.crt