Як я можу гарантувати, що оглушення надсилає всі проміжні сертифікати 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-----

Це змусить оглушення представити клієнтам повний ланцюжок сертифікатів.

Ще один примх; openssl s_clientкоманда дуже корисна для тестування питань ланцюжка сертифікатів і перевірок , як ваша служба представляють свої сертифікати.

Редагувати: Добре .. ланцюжок пакета сертифікатів три-глибокий, але ланцюжок довіри виглядає двоглибоко. Щось не так.

Верхній сертифікат ("Starfield Secure Certification Authority") підписується емітентом на ім'я "Starfield Class 2 Certification Authority" з відбитком пальців, починаючи з ad7e1c28.. але другий сертифікат у пакеті, названий точно так само, як підписант першого сертифікату, який має бути точно таким же сертифікатом, має відбиток пальців, починаючи з 363e4734, і термін придатності на 10 років раніше. Тоді третя (коренева) церт є підписником включеної проміжної церти .. але жоден з цих двох не має жодного відношення до першого!

Якщо це не мало сенсу, не хвилюйтеся. Короткий зміст: неохайна робота, хтось серйозно кинув кулю, будуючи цю грудку. Ваша найкраща ставка - це експортувати файли у форматі base-64 із браузера, який успішно перевіряє ланцюг, вставляючи їх у той формат, який я перераховував звідти.

Оскільки це заплутане безладдя без вашої власної вини, я здогадався про ваше ім’я DNS і схопив cert, і я вважаю, що це має бути необхідний повний ланцюжок: http://pastebin.com/Lnr3WHc8


Дякую, це було дуже корисно! Я не можу подати заявку, оскільки у мене немає балів повторень, але я б :-)
Джек Шталь

@Jack Якщо ваша проблема вирішена, ви зможете прийняти відповідь навіть з низьким рівнем відповіді. Я відредагував допис, щоб уточнити, що наданий ними пакет цертів накручений .. і оскільки це такий безлад, я пішов вперед і зібрав для вас повний ланцюжок.
Шейн Медден

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.
(Зауважте, що після крапки в імені файлу є нуль, а не літера "O".)

Якщо у вас немає c_hashпрограми, ви можете запустити відповідну команду OpenSSL, щоб визначити хеш-значення:

openssl x509 -hash -noout -in some_certificate.pem
a4644b49

І якщо ви зіткнулися з цією проблемою bc, ви намагаєтеся використовувати веб-розетки з андроїд-кордовою, не забудьте вручну додати файл wss до вашого пункту білого списку cordova, оскільки * включає лише http та https.


Стаття, на яку ви посилаєтесь, має великий червоний банер у верхній частині сторінки, на якій написано Ця сторінка знецінена , чи впевнені ви, що ця інформація є правильною, як це підтримується, або як треба робити, під час цього написання?
австрійський

2
Позитивні, принаймні просто з цитованої частини. оглушення буде хитатися, якщо ви не назвете ланцюжок сертифікатів як хеш файлу.
BrightEyed

Крім того, додавання .0 нам не потрібно. Дякую за орфографічні скрутні до речі, кинув пост вгору після looooong ночі; D
BrightEyed

Дивовижний, радий почути перевірку. Я розумію, зараз я вже 3-й довгий день поспіль. (11, потім 14 годин, сьогодні може бути ще 14 годин.)
австрійський

1
Ееее, живуть ІТ-мрією: D
BrightEyed
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.