Некоторые компьютеры, но не большинство, отклоняют сертификат SSL с моего веб-сервера. Проблема, похоже, в том, что некоторые компьютеры отклоняют сертификаты CA. Проблема, похоже, проявляется в Mac OS X 10.6, когда она не полностью обновлена.
В соответствии с http://www.sslshopper.com/index.php?q=ssl-checker.html#hostname=beta.asana.com -- нет проблем.
В соответствии с http://certlogik.com/sslchecker/, промежуточные сертификаты не отправляются.
Мой сертификат от Starfield Technologies, и я использую sf_bundle.crt
отсюда: certs.godaddy.com/anonymous/repository.seam
Я обрабатываю SSL на своем сервере через stunnel со следующим stunnel.conf
:
cert = $CODEZ/admin/production/proxy/asana.pem
CAfile = $CODEZ/admin/production/proxy/sf_bundle.crt
pid =
client = no
[<forwarded port>]
accept = 443
connect = 8443
Есть идеи, что я мог делать неправильно?
В CAFile
опция настраивает CA для использования сертификатов аутентификации клиентов; это не то, что вы хотите.
Вместо этого вы хотите создать файл в cert
возможность содержать всю применимую цепочку сертификатов. Вы захотите сохранить резервную копию этого файла, а затем создать новую; в основном объединение двух файлов, отформатированных следующим образом:
-----BEGIN CERTIFICATE-----
(certificate from asana.pem file pasted here)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(intermediate certificate here; copy-paste the top chunk from the bundle)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(root certificate here; copy-paste the bottom chunk from the bundle)
-----END CERTIFICATE-----
Это заставит stunnel предоставить клиентам полную цепочку сертификатов.
Еще один лакомый кусочек; в openssl s_client
Команда очень полезна для тестирования проблем с цепочкой сертификатов и проверки того, как ваша служба представляет свои сертификаты.
Редактировать: Хорошо ... цепочка этого пакета сертификатов состоит из трех частей, но цепочка доверия выглядит как две. Что-то не так.
Верхний сертификат («Центр сертификации Starfield Secure») подписан эмитентом с именем «Центр сертификации класса 2 Starfield» с отпечатком пальца, начинающимся с ad7e1c28
.. но второй сертификат в пакете, названный точно так же, как подписавший первый сертификат, который должен быть тем же самым сертификатом, имеет отпечаток, начинающийся с 363e4734
, и срок годности 10 лет назад. Тогда третий (корневой) сертификат является лицом, подписывающим включенный промежуточный сертификат .. но ни один из этих двух не имеет никакого отношения к первому!
Если это не имело смысла, не волнуйтесь. Резюме: небрежная работа, кто-то серьезно отказался от сборки этого пакета сертификатов. Поэтому лучше всего экспортировать файлы в формате base-64 из браузера, который успешно проверяет цепочку, вставляя их в формат, который я указал оттуда.
Поскольку это запутанный беспорядок не по вашей вине, я угадал ваше DNS-имя и взял сертификат, и я думаю, что это должна быть полная цепочка, которая вам нужна: http://pastebin.com/Lnr3WHc8
Для всех, кто столкнулся с этой проблемой, сообщение Шейна помогло, хотя мне также пришлось включить CAFile. Также при создании цепочки убедитесь, что вы следуете инструкциям по именованию файлов в соответствии с Эта статья
Чтобы определить имя файла, которое вы должны использовать, вы можете использовать программу c_hash, которая поставляется с OpenSSL (в
/usr/local/ssl/misc
каталог):
c_hash some_certificate.pem
a4644b49.0 => some_certificate.pem
Итак, в приведенном выше случае вы бы переименовали файл в
a4644b49.0
.
(Обратите внимание, что после точки в имени файла стоит ноль, а не буква «О».)Если у вас нет
c_hash
В программе вы можете запустить соответствующую команду OpenSSL, чтобы определить значение хэша:
openssl x509 -hash -noout -in some_certificate.pem
a4644b49
И если вы столкнулись с этой проблемой, так как вы пытаетесь использовать веб-сокеты с Android Cordova, обязательно вручную добавьте wss в свой белый список Cordova, поскольку * включает только http и https.
Qualys SSLLabs действительно удобен для проверки вашей конфигурации после изменений.
https://www.ssllabs.com/ssldb/analyze.html
Проверки, которые у вас есть