Назад | Перейти на главную страницу

HTTPS не работает с двумя промежуточными сертификатами

Я пытаюсь создать свой собственный центр сертификации с помощью программного обеспечения XCA. Я успешно создал корневой ЦС (Fisir Technologies CA) и промежуточный СА (Fisir Technologies Intermediate CA X1). Однако я хочу иметь еще один промежуточный ЦС (Fisir Technologies Endpoint CA WWW) под первым промежуточным КА (Fisir Technologies Intermediate CA X1). Предполагается, что второй промежуточный ЦС будет выдавать сертификаты конечных объектов.

Я сделал все это и импортировал свой корневой ЦС в качестве доверенного корневого центра сертификации (в Windows). Затем я создал новый сертификат HTTPS, подписанный вторым промежуточным ЦС. Я попытался открыть его с помощью средства просмотра сертификатов по умолчанию в Windows, но он сказал мне, что у него недостаточно информации для проверки сертификата. Этого я и ожидал, поскольку установил только корневой центр сертификации.

Итак, я создал цепочку сертификатов, включая корневой ЦС, два промежуточных ЦС и сертификат HTTPS. Я загрузил его на свой VPS, настроил HTTPS-сервер в nginx и попытался получить к нему доступ. Но Google Chrome приветствовал меня NET::ERR_CERT_INVALID ошибка.

Я нажал на перечеркнутый красный замок в адресной строке, и он сказал, что сертификат недействителен. Поэтому я решил просмотреть сертификат, и он снова открыл его в средстве просмотра сертификатов Windows по умолчанию. Но никаких ошибок не показало. Я посмотрел на путь к сертификату, и он был показан правильно:

Путь к сертификату

Там же сказано, что сертификат действительный. Кроме того, каждая обнаруженная мной онлайн-программа проверки HTTPS не показывала никаких проблем с настройкой (за исключением, конечно, ненадежного корневого центра сертификации).

Я пытался изменить различные свойства сертификата, но ничего не вышло. Затем я попытался выдать тот же сертификат, что и в первый раз, но на этот раз я подписал его с первым промежуточным ЦС. Я обновил страницу, и она сработала.

Но я хочу выдать сертификаты, используя второй промежуточный ЦС. Кто-нибудь знает, в чем может быть проблема?

Вы можете сами проверить проблему на сайте https://php.technologies.fisir.net.

Спасибо.

Здесь у вас есть несколько проблем:

  1. Ваш сертификат корневого ЦС имеет pathlen в его basicConstraints - не нужны и не используются, но не должны вызывать проблем.
  2. У вас есть политика сертификатов для вашего сертификата корневого ЦС - это лучше применить по ваш корневой ЦС в подчиненные ЦС. Если вы захотите изменить политику позже или добавить другую политику, вам придется подать в отставку и повторно выпустить свой сертификат корневого центра сертификации для всех доверяющих сторон. Опять же, это не должно вызывать проблему, о которой вы сообщили.

Тем не мение...

  1. Ваш CRL корневого CA в точке распространения CRL в http://crl.ca.technologies.fisir.net/root.crl недоступен. Ваши доверяющие стороны не могут строить цепочку, поскольку не могут проверить отзыв. Это предполагает, что они проверяют.
  2. CRL вашего первого подчиненного ЦС также недоступен на http://crl.ca.technologies.fisir.net/intermediate-x1.crl - то же, что и выше.
  3. CRL вашего выдающего CA также недоступен по адресу http://crl.ca.technologies.fisir.net/x1-endpoint-www.crl - здесь формируется паттерн ;-)
  4. Сервер OCSP в расширении доступа к информации о полномочиях недоступен (он даже не преобразуется в IP-адрес). Проверяющая сторона, которая использует OCSP для проверки отзыва, потерпит неудачу.

Я предполагаю, что ваши проблемы связаны с тем, что проверяющие стороны (Chrome и т. Д.) Не могут проверить отзыв и, следовательно, не могут успешно построить цепочку сертификатов.