Подтвердить что ты не робот

Ошибка 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 - это сертификат ЦС, также отправленный мне моим полномочным лицом. Проблема заключается в том, что я не приобрел сертификат SSL непосредственно из GlobalSign, а вместо этого через своего хостинг-провайдера Singlehop.

Тестирование

Сертификат корректно проверяется в Safari и Chrome, но не в Firefox. Первоначальный поиск показал, что это может быть проблемой с CA.

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

Я использовал 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

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

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

4b9b3361

Ответ 1

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

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