Ошибка 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 ответ:
jww прав - вы ссылаетесь на неправильный промежуточный сертификат.
поскольку вам был выдан сертификат SHA256, вам понадобится промежуточное звено SHA256. Вы можете захватить его отсюда:http://secure2.alphassl.com/cacert/gsalphasha2g2r1.crt