Ошибка 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, но получил ту же ошибку. Я обновил корневой CA на моем сервере Debian, используя , но ничего не изменилось. Это, вероятно, потому, что 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 64

1 ответ:

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

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