IIS 10: недействителен сертификат на обновление CSR?

Вопрос или проблема

Когда я использую “Создать запрос наRenewal сертификата” в IIS 10 (чтобы попытаться продлить существующий и истекший сертификат, выданный Sectigo), внешний центр сертификации (Sectigo) сообщает, что полученный CSR недействителен. (IIS экспортирует CSR для продления в текстовый файл размером 7 КБ, который выглядит как CSR, затем я копирую и вставляю содержимое в онлайн-форму Sectigo. Предыдущий “свежий” CSR, выданный год назад, не вызывал проблем.)

-----BEGIN NEW CERTIFICATE REQUEST-----
*********
<snip>
/****/***********/****************+/
***********
-----END NEW CERTIFICATE REQUEST-----

Создать запрос на продление сертификата

CSR также больше – 7 КБ по сравнению с 2 КБ для предыдущего CSR для нового сертификата, и несколько онлайн-валидаторов также отмечают его как недействительный (но не указывают, что именно не так).

Что я делаю не так? Нужно ли мне просто сгенерировать новый CSR так, как это делается для нового сертификата, вместо того чтобы проходить процесс продления в IIS? Мог бы кто-нибудь объяснить, почему? Каков процесс продления в IIS, и почему он генерирует CSR, который считается недействительным внешними центрами сертификации?

П.С. Один полезный человек на SE сказал, что “причина хорошо известна” в комментарии и отправил меня на “IIS SSL Certificate Renewal Pain“, однако “причина” там не указана, только то, что проблема существует:

Хотя я не уверен, в чем именно проблема, похоже, что IIS не учитывает ни одного из ваших оригинальных выборов размера сертификата и генерирует огромный запрос на сертификат, который в 3 раза больше ‘нормального’ запроса на сертификат. В конечном итоге (и я делал это как минимум дважды) процессор сертификатов, вероятно, не сможет обработать эти продления.

… что подводит меня к вопросу в заголовке: что делает “продление” в IIS и почему CSRs продления в IIS считаются недействительными центрами сертификации?

Спасибо!

Вопрос в значительной степени дублирует Как я могу проверить/прочитатьCSR на продление SSL для IIS7 с помощью OpenSSL, и ответ сводится к следующему: его отмечают как недействительный большинство центров сертификации, поскольку они не знают, или не утруждают себя выяснением, как его прочитать.

Согласно этому отличному ответу Джима Читема:

Структура этого запроса на продление для IIS7 на самом деле довольно элегантна. Кажется, она исходит из предположения, что поскольку это запрос на продление текущего сертификата, необходимо подтвердить, что запрос исходит от правильного хоста — т.е. хоста, который реально использует текущий сертификат и ∴ владеет соответствующим закрытым ключом. В мире Интернета вы доказываете, что имеете право запрашивать продление сертификата, аутентифицируясь перед своим CA как оригинальный пользователь, а не создавая подписанный CSR.

Что для меня означает следующее, даже если это не указано явно:

  1. CSR действителен
  2. Центры сертификации не принимают его, вероятно, потому что не знают, как (или не оснащены) для его прочтения и обработки
  3. Чтобы обойти проблему:
    • следовать инструкциям в ответе Джима для экспорта более простой версии CSR, приемлемой для большинства центров сертификации
    • создать новый запрос на сертификат в IIS
    • повторно использовать существующий (предыдущий, оригинальный) CSR, использованный при первоначальной выдаче сертификата.

Ответ или решение

Вопрос о том, почему CSR (запросы на сертификаты) при обновлении сертификатов в IIS 10 считается недействительным, является достаточно распространенным. Давайте рассмотрим ключевые моменты и возможные решения.

Что происходит при обновлении сертификата в IIS:

  1. Процесс обновления: Когда вы используете функцию "Создание запроса на обновление сертификата" в IIS, система создает CSR, который по своему формату и размеру может отличаться от стандартных запросов, которые ожидаются Центрами сертификации (ЦС).

  2. Размер CSR: Как вы заметили, CSR, созданный IIS, может быть значительно больше (7 КБ против 2 КБ), и это часто приводит к проблемам. Это связано с тем, что IIS, возможно, включает дополнительные данные в CSR, которые не нужны или не понимаются ЦС.

  3. Проблемы с совместимостью: Многие ЦС не принимают такие CSR, потому что у них могут не быть механизмов для обработки специфического формата, используемого IIS. Они могут не распознавать данный запрос как корректный, даже если он на самом деле соответствует стандартам.

Почему CSR от IIS считается недействительным:

  1. Несоответствие формата: ЦС не знают, как обрабатывать CSR, созданные IIS, так как они могут иметь расширенные поля или нестандартные атрибуты, что приводит к ошибкам валидации.

  2. Отсутствие необходимой информации: В отличие от обычных CSR, в которых указана вся необходимая информация, CSR от IIS может не содержать ключевых данных, которые важны для ЦС, например, конкретную информацию о домене или информации о стране.

Как решить проблему:

  1. Создание нового CSR: Наиболее простым и эффективным решением будет создать новый запрос сертификата вместо попыток использовать обновление. Вы можете сделать это, выбрав опцию создания нового CSR в IIS и следуя стандартной процедуре.

  2. Экспортирование простого CSR: Если вам необходимо сохранить старый подход с обновлением, вы можете следовать инструкциям, описанным в ответе Джима Читема на ServerFault, чтобы экспортировать более простой CSR, который будет принят большинством ЦС.

  3. Использование предыдущего CSR: Если у вас есть оригинальный CSR, который вы использовали для предыдущего сертификата, вы можете повторно использовать его для обновления, если это позволяется вашим ЦС.

Заключение

Процесс обновления сертификатов в IIS может вызывать сложности из-за различий в форматах CSR. Чтобы избежать проблем с валидацией, лучше создавать новый CSR или использовать проверенные методы. Будьте внимательны при подаче CSR в ЦС, чтобы убедиться, что он соответствует их требованиям.

Оцените материал
Добавить комментарий

Капча загружается...