IIS 7.0 - сертификат SSL - обновить или новый?

13

Срок действия одного из моих сертификатов SSL (только для простой проверки домена) истекает на сервере Windows 2003 IIS 7.0.

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

В любом случае, пройдя через мастер сертификатов в IIS, я могу «обновить» или «удалить», а затем установить новый сертификат.

Итак, могу ли я использовать опцию «обновить», чтобы создать запрос сертификата и передать его новому поставщику, или мне нужно начать с «нового» запроса? Будет ли иметь значение для нового поставщика, что предыдущий сертификат был выдан другим подписавшим?

Проблема в том, что я не хочу останавливать сервер (по крайней мере, защищенную часть) из-за удаления старого сертификата и создания нового CSR и ждать установки нового сертификата.

Или есть возможность подготовить новый CSR без удаления старого сертификата?

Солнечный
источник

Ответы:

7

Вам нужно только создать временный веб-сайт с IIS 6.0. IIS 7.0 позволяет создавать несколько ожидающих запросов одновременно.

В IIS 7.0 действительно есть ошибка, из-за которой функция возобновления генерирует CSR с очень большим ключом (гораздо большим, чем вы хотите). Из-за этого рекомендуется создать новый ожидающий запрос вместо выбора варианта продления. После установки вы просто переключаете привязку SSL на сайте, и у вас не будет простоев. Это также позволяет генерировать новый ключ при каждом обновлении, что повышает безопасность.

Поставщик сертификатов (CA) не заботится о том, используете ли вы новую опцию или опцию продления, и вы можете использовать любую опцию, независимо от того, используете ли вы тот же CA или заказываете у нового.

Роберт
источник
7

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

Создать новый запрос без взрыва IIS

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

Простая суть процесса заключается в том, что вы создадите файл inf с необходимой информацией, запустите certreq -new file.inf file.req. Получив файл запроса, вы можете отправить его в центр сертификации, которому хотите выдать сертификат, а затем принять открытый ключ, который они отправили вам, с помощью команды.certreq -accept file-from-ca.req

Пример request.inf

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=fully.qualified.domain.name, OU=Organizational Unit, O=Company, L=City, S=State, C=Country"
KeySpec = 1
KeyLength = 2048
HashAlgorithm = SHA256
Exportable = FALSE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
RequestType = PKCS10
KeyUsage = 0xa0
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
FriendlyName = ""

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication

[RequestAttributes]
CertificateTemplate = WebServer

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=&"
_continue_ = "DNS="

Приведенный выше пример inf - это тот, который я использую для собственного ЦС, но его можно адаптировать для работы в большинстве сред. Вы можете установить Exportableзначение TRUE, если хотите иметь возможность архивировать свой ключ. Это FriendlyNameсовершенно необязательно, и этот Extensionsраздел предназначен для использования альтернативных DNS-имен (Subject Alternative Names).

Примером записи SAN будет:

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=example.com&"
_continue_ = "DNS=www.example.com&"
_continue_ = "DNS=secure.example.com"

Это позволило бы вам использовать один и тот же сертификат с тремя вышеуказанными сайтами, не жалуясь на несоответствие имен (в современных браузерах - я не думаю, что IE6 это понимает). Важно, чтобы вы включили полное доменное имя (CN строки темы) в SAN, если настроили это. Вы также можете полностью удалить область расширений, если вам не нужны несколько доменных имен (также некоторые CA могут не поддерживать ее).

Процесс

Как только вы сохраните вышеупомянутую информацию (я знаю, что это много). Следуй этим шагам:

  1. Откройте командную строку и перейдите в каталог, в котором вы сохранили вышеуказанную инф.
  2. Бегать certreq -new above.inf request.req
  3. Отправьте файл request.req в свой ЦС. Они обработают это и одобрят / отклонят это.
  4. Когда они одобрят это, они должны отправить вам ваш открытый ключ в файле .cer.
  5. Запустите, certreq -accept file-from-ca.cerчтобы закончить настройку ключа.

Удачи!

редактировать

Полный синтаксис для certreq и файла inf можно найти в Приложении 3: Синтаксис Certreq.exe (Windows Server 2003 SP1) . FriendlyNameИ HashAlgorithmтолько Server 2008 (и R2). Вы можете просмотреть список поддерживаемых поставщиков криптографии, выполнив команду certutil -csplistи просмотрев выходные данные. В текущей версии Windows 2003 с пакетом обновления 2 (SP2) в качестве доступного поставщика указан «Microsoft RSA SChannel Cryptographic Provider», поэтому убедитесь, что в вашем файле правильно установлены кавычки и что эта запись находится только в одной строке (без переноса или многострочно).

Вы также можете изменить ProviderName на ProviderType и использовать число, указанное в выходных данных certreq -csplist.

В этом случае я получаю следующий вывод:

Provider Name: Microsoft RSA SChannel Cryptographic Provider
Provider Type: 12

Так что я могу использовать

ProvderName = "Microsoft RSA SChannel Cryptographic Provider"

или

ProviderType = 12
Джошуа
источник
Благодарю. Как мне подготовить это вручную?
Солнечно,
Кроме того - все еще нерешенный вопрос - имеет ли значение для «продления», что сертификат будет выдан новым поставщиком?
Солнечно,
Насколько я знаю, для обновления требуется, чтобы тот же CA, выдавший сертификат, отправил вам обновленный сертификат, так как в обновлении хранятся один и тот же открытый и закрытый ключи. Для другого ЦС будет установлен другой ключ для подписи, поэтому ваша пара открытого и закрытого ключей будет отличаться.
Джошуа
Джошуа, он сообщает об этом: обработчик запроса сертификата: данные неверны. 0x8007000d (WIN32: 13) mycert.inf (HashAlgorithm = "SHA256"). Вы уверены, что это должно работать? В оригинале. В статье, на которую вы ссылаетесь, такой настройки нет.
Солнечно,
Я удалил настройки HashAlgorithm и FriendlyName (так как он жаловался на них) и не получил: обработчик запроса сертификата: тип провайдера не соответствует зарегистрированному значению. 0x8009001b (-2146893797). Печалька.
Солнечно,
1

Хорошо, чтобы частично ответить на мой собственный вопрос - часть создания / использования нового сертификата без удаления существующего (т.е. без остановки сервера), я нашел хорошее описание на веб-сайте Comodo - в основном мне нужно создать «временный» веб-сайт на сервере и используйте его для создания нового CSR, отправки его на подпись, получения и импорта сертификата.

Затем на моем основном (реальном) сайте мне нужно заменить текущий сертификат, а затем удалить временный.

Солнечный
источник