Как я могу гарантировать, что Stunnel отправит все промежуточные сертификаты CA?

13

Несколько компьютеров, но не большинство, отклоняют сертификат 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

Есть идеи, что я могу делать не так?

Джек Шталь
источник

Ответы:

17

CAFileОпция настраивает ЦС для использования сертификатов проверки подлинности клиента; это не то, что вы хотите.

Вместо этого вы хотите создать файл в 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») подписан эмитентом с именем «Центр сертификации Starfield Class 2» с отпечатком, начинающимся с ad7e1c28…, но вторым сертификатом в комплекте, который точно такой же, как и тот, кто подписал первый сертификат. должен быть точно такой же сертификат, имеет отпечаток, начиная с 363e4734, и срок действия 10 лет назад Тогда третий (корневой) сертификат является лицом, подписавшим промежуточный сертификат, но ни один из них не имеет никакого отношения к первому!

Если это не имеет смысла, не волнуйтесь. Резюме: неаккуратная работа, кто-то серьезно бросил мяч, собирая этот сертификат. Поэтому лучше всего экспортировать файлы в формате base-64 из браузера, который успешно проверяет цепочку, и вставлять их в формат, который я перечислил оттуда.

Поскольку это беспорядочный беспорядок не по вашей вине, я предположил ваше DNS-имя и взял сертификат, и я думаю, что это должна быть полная цепочка, которая вам нужна: http://pastebin.com/Lnr3WHc8

Шейн Мэдден
источник
Спасибо, это было супер полезно! Я не могу отдать голос, потому что у меня нет точек повторения, но я бы :-)
Джек Шталь
@ Джек. Если ваша проблема решена, вы можете принять ответ даже при низкой репутации. Я отредактировал этот пост, чтобы уточнить, что предоставленный ими пакет сертификатов испорчен ... и, поскольку это такой беспорядок, я пошел вперед и собрал всю цепочку для вас.
Шейн Мэдден
1

Qualys SSLLabs действительно удобен для проверки вашей конфигурации после изменений.

https://www.ssllabs.com/ssldb/analyze.html

Проверки, которые у вас есть

  • сильные шифры включены
  • слабые шифры отключены
  • цепочка сертификатов завершена и в правильном порядке
Бен Вальдинг
источник
1

Для любого, кто столкнулся с этой проблемой, пост Шейна добился цели, хотя мне также пришлось включить 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.

BrightEyed
источник
Статья, на которую вы ссылаетесь, имеет большой красный баннер в верхней части, который гласит: « Эта страница устарела , вы уверены, что эта информация верна, как в поддерживаемых или как должно быть сделано на момент письмо?
австралиец
2
Положительный, по крайней мере, только для указанной части. stunnel будет вызывать колебания, если вы не укажете цепочку сертификатов в качестве хэша файла.
BrightEyed
Кроме того, добавление .0 не требовалось для нас. Спасибо за исправление орфографии между прочим, поднял почту после долгой ночи; D
BrightEyed
Круто, рад слышать подтверждение. Я понимаю, у меня уже третий длинный день подряд. (11, затем 14 часов, сегодня может быть еще 14 часов.)
австралиец
1
Eeesh, живущий IT мечтой: D
BrightEyed