Як SSL-сертифікат може працювати лише для деяких клієнтів?


11

Нещодавно мій провайдер хостингу повторно видав та повторно встановив сертифікат SSL для мого домену після того, як вони дозволили помилково закінчити термін дії старого.

Тепер я можу знову переглядати веб-сайт через HTTPS, і це мій хост, як і ряд інших користувачів.

Однак деякі користувачі (принаймні десяток із сотень) все ще отримують Your connection is not secureповідомлення про помилки в різних браузерах та платформах. (Діагностувати проблему, яку я не можу відтворити, важко.)

Я розумію, що різні веб-переглядачі використовують різні списки органів з сертифікації (CA.)

  1. Чому користувач, який працює з такою ж версією Firefox, як і я (45.0.1 в ОС X), отримує SEC_ERROR_UNKNOWN_ISSUERпомилку (лише для мого сайту), поки я не? Що це робить можливим? Згаданий користувач очистив кеш і перезавантажив свій ноутбук.

Я запустив перевірку SSL на digicert.com . Результат такий:

Сертифікату SSL не довіряють

Сертифікат не підписується довіреною владою (перевіряє кореневий магазин Mozilla). Якщо ви купили сертифікат у надійного органу, вам, мабуть, просто потрібно встановити один або кілька проміжних сертифікатів. Зверніться до свого постачальника сертифікатів, щоб допомогти це зробити для вашої платформи сервера.

  1. Як я можу підключитися до сайту без SSL помилок, якщо це так?

1
My hosting provider has recently re-issued and re-installed an SSL certificate for my domain, after they let the old one expire by mistake.- Як це ви залишили цю відповідальність у своїх руках?
joeqwerty

3
Тільки тому, що я не системдмін, я знімаю у них керований виділений сервер. (Для невеликого оповідання, я пишу матеріал та код, що вивчає мову, на додаток до ведення бізнесу, тож роблю сисадмін теж, хоча це цікаво, було б занадто багато капелюхів.)
Fabien Snauwaert,

7
@joeqwerty: Тому що це їхня робота? Він буквально платить їм, щоб розібратися за нього.
Гонки легкості на орбіті

@LightnessRacesinOrbit: Такого припущення я не зробив, звідси питання.
joeqwerty

1
bugzilla.mozilla.org/show_bug.cgi?id=399324 - це звіт про помилку, який вимагає підтримки для автоматичного завантаження проміжних сертифікатів у Firefox. Дискусія (вже 8 років) зводиться до "IE робить це!" / "До біса з IE, RFC каже, що це необов'язково!" / "Ви коли-небудь чули про принцип надійності?" / "Конфігурація вашого сервера погана, і ви повинні почувати себе погано!"

Відповіді:


22

Ланцюжок ваших сертифікатів неповний. Швидше за все, ваш постачальник не встановив проміжний сертифікат під час встановлення нового сертифіката.

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

Дійсно чудовою утилітою для перевірки проблем із SSL на своєму веб-сайті є тест SSL-сервера на SSLlabs . Як ви бачите за посиланням вище, не тільки у вас виникає ланцюгова проблема, але й алгоритм підпису, який використовується для створення вашої cert, є слабким, ваш веб-сервер все ще вразливий до атаки POODLE і все ще підтримує RC4, який є також вважається незахищеним ...

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


Дякую, це дуже корисно. З цілковитої цікавості, будь-яка ідея, чому клієнт OS X і та сама версія Firefox, як і моя, отримує SEC_ERROR_UNKNOWN_ISSUERпомилку, а я - ні? Можливо, його версія для ОС інша?
Fabien Snauwaert

1
@FabienSnauwaert Так, якщо прокрутити вниз до "Моделювання рукостискання", тест SSLLabs спробує імітувати різні комбінації версій ОС / браузера. Браузер не працює з підключеннями SSL повністю самостійно, але частково покладається на реалізацію ОС. Тож безумовно версія ОС має значення.
s1lv3r

3
Справа не лише в тому, що клієнти можуть мати різні списки ЦП. Можливо також, що деякі клієнти кешують проміжні сертифікати таким чином, що сайт із відсутнім проміжним сертифікатом може працювати, якщо браузер раніше відвідував сайт, який правильно налаштував цей проміжний сертифікат.
kasperd

Сайт SSLlabs - це приємний інструмент. Дякую за довідку.
Parapluie

12

Для того, щоб сертифікат можна було довіряти, він повинен бути підписаний суб'єктом, який сам довіряє вашій комбінації браузера / ОС, або який, власним чином, був підписаний таким об'єктом. Зазвичай це робиться одним довіреним кореневим сервером CA, який підписує проміжний CA, а проміжний CA підписує ваш сертифікат. Це створює ланцюжок, як це:

  1. Root CA, якому довіряє ваш комп’ютер, і знаки
  2. Проміжний СА, який підписує
  3. Ваш сертифікат, якому довіряють лише через ланцюг, що веде назад до кореня CA.

Проблема тут полягає в проміжному сертифікаті CA. Для того, щоб переконатися, що кожен може перевірити ланцюг аж до кореневого ЦС, ваш постачальник повинен включити проміжний сертифікат у свою конфігурацію сервера. У цьому випадку вони цього не зробили.

Причина, чому це працює для деяких користувачів, полягає в тому, що вони мають проміжний сертифікат у власному "магазині довіри". У таких випадках вони приймуть ваш сертифікат, оскільки вони вже довіряють проміжним. Але у випадку, коли ваші відвідувачі мають іншу ОС / браузер, вони не мають проміжного сертифіката, тому їм потрібно буде отримати його від вашого веб-сервера - а ваш веб-сервер не роздає, тому вони не мають можливості перевіряючи це.


Дякую, мені це допомагає зрозуміти проблему зараз. Чи є якийсь трюк, щоб змусити користувачів додавати проміжний сертифікат до власного "магазину довіри", поки чекаю, коли мій хост виправить сертифікат? наприклад: відвідування іншого SSL-сайту, який покладається на нього чи так?
Fabien Snauwaert

1
@FabienSnauwaert, на жаль, немає жодної хитрості. Просто відвідування сайту, який має той самий проміжний сертифікат, не допоможе; їм потрібно було б фактично завантажити сертифікат і додати його вручну до свого браузера. Я вважаю, що саме цей сертифікат включений у новіші браузери - він працює у Firefox 45.0.1, але не в 43.0.4, тому він був включений десь між цими двома версіями. Тож якщо ви зможете змусити своїх клієнтів оновити свої веб-переглядачі, це допоможе.
Дженні Д

4
@JennyD Проміжні сертифікати кешуються сучасними браузерами, тому відвідування іншого веб-сайту, який використовує той самий проміжний, є досить імовірним. Однак це справді не те, про що слід запитати своїх користувачів ... (див .: bugzilla.mozilla.org/show_bug.cgi?id=629558 , sslmate.com/blog/post/chrome_cached_sha1_chains )
Боб

0

Якщо ви використовували прив'язку відкритого ключа HTTP і ваш постачальник надав новий сертифікат, відкриті ключі, можливо, вже змінилися. Ці ключі зберігаються у браузері клієнта протягом вказаного періоду.

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