Ошибка 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