Почему браузеры знают, какой сертификат использовать, если их несколько?

Почему браузеры знают, какой сертификат использовать, если их несколько?

Я совсем новичок в мире серверов и сетей, надеюсь, что вопросы понятны и не будут такими тривиальными. Недавно я столкнулся со следующим сценарием:

  1. Был корневой сертификат A, срок действия которого истекает через несколько месяцев. Был еще один новый корневой сертификат B, который должен был заменить A. Оба сертификата A и B являются самоподписанными. CA A доверяют старые и новые браузеры / ОС, в то время как CA B доверяют только современные браузеры / ОС

  2. Был перекрестный сертификат A->B (B подписан A), который в настоящее время используется на наших серверах. Однако, поскольку срок действия A скоро истекает, мы применили другой перекрестный сертификат C->B (B подписан C, CA которого доверяют как старые, так и новые браузеры / ОС) в качестве замены.

  3. Теперь в среде UAT мы обновляем сертификат C->B, а для клиентской стороны я пытаюсь использовать некоторые устаревшие браузеры для тестирования, я проверил, что только CA A и CA C являются доверенными, а CA B — нет. Для среды PROD мы остаемся без изменений, т.е. используем сертификат A->B

  4. Я захожу на сайт UAT с помощью упомянутого браузера и впервые проверяю, что используемый сертификат — A->B. Удивительно, но для последующего доступа к сайтам UAT и PROD используется сертификат C->B (проверено на стороне клиента).

Мой вопрос: это нормальное поведение? Почему клиентская сторона "знает", что нужно использовать C->B с момента первого доступа к сайтам UAT? Я также использую openssl s_clientдля проверки того, что сервер PROD все еще использует A->B. Как браузеры узнают, какой сертификат использовать, и "обновляют" его соответствующим образом?

Отредактировано 2022-дек-13

  1. Наша главная цель — поддержка как очень старых браузеров/ОС, так и современных браузеров/ОС. То есть все браузеры могут успешно получить доступ к нашему сайту даже после истечения срока действия сертификата A.
  2. Я думаю, мой главный вопрос или сомнение заключается в следующем: если верно следующее:
  • Старые браузеры при первом доступе к сайту UAT показывают, что сервер использует сертификат A->B из-за какого-то механизма кэширования.
  • После первого доступа к сайту UAT сервер фактически «проталкивает» новый сертификат C->B на клиентскую сторону, которая настроена на сервере. Теперь браузеры или даже уровень ОС распознают, что последний сертификат — это C->B, а не A->B.
  • Хотя C->B подтвержден, сертификат A->B все еще сохраняется в браузере / ОС. Но браузер каким-то образом знает, что нужно проверить с помощью нового сертификата C->B. Это означает, что наша цель может быть достигнута.

решение1

Делаетэтотответить на ваш вопрос?

По ссылке вам может потребоваться очистка кэша браузера/состояния SSL:

Веб-браузеры кэшируют SSL-сертификаты для ускорения работы браузера. Обычно это не проблема. Однако, когда вы разрабатываете страницы для своего веб-сайта или устанавливаете новый сертификат, состояние SSL браузера может помешать. Например, вы можете не увидеть значок замка в адресной строке браузера после установки нового SSL-сертификата.

Связанный контент