IIS 7.0 - сертифікат SSL - оновлення чи нове?


13

Один із моїх сертифікатів SSL (лише проста перевірка домену) скоро закінчується на сервері Windows 2003 IIS 7.0.

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

У будь-якому разі, пройшовши майстра сертифікатів у IIS, у мене є можливість "оновити" або "видалити", а потім встановити новий сертифікат.

Отже - чи можу я скористатися опцією "оновити", щоб створити запит на сертифікат і передати це новому постачальнику, або мені потрібно починати з "нового" запиту? Чи буде мати значення для нового продавця, що попереднє посвідчення було видано іншим підписником?

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

Або є можливість підготувати новий КСВ без вилучення старого сертифіката?

Відповіді:


7

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

IIS 7.0 насправді має помилку, яка викликає функцію оновлення для створення CSR з дуже великим ключем (набагато більшим, ніж ви хочете). Через це рекомендується створити новий запит на очікування замість вибору опції оновлення. Після встановлення ви просто переключите прив'язку SSL на веб-сайті, і у вас не буде простоїв. Це також дозволяє генерувати новий ключ при кожному поновленні, що підвищує безпеку.

Постачальника сертифікатів (CA) не хвилює, використовуєте ви нову опцію чи опцію поновлення, і ви можете скористатися будь-яким варіантом, чи залишаєтесь ви в тому самому ЦО або замовляєте новий.


7

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

Щоб створити новий запит без підриву IIS

Ви можете створити запит на сертифікат вручну та надіслати його. Отримавши новий сертифікат, ви зможете просто переключити сертифікат, який IIS7 шукає. Як створити сертифікат SSL веб-сервера вручну .

Простий суть процесу полягає в тому, що ви створите інфа-файл з необхідною інформацією, запустіть 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 - це те, що я використовую внутрішньо для власного ЦО, але його можна адаптувати для роботи в більшості середовищ. Ви можете встановити ExportableTRUE, якщо хочете мати можливість архівувати ваш ключ. Це 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 в тематичному рядку), якщо ви його встановили. Ви також можете повністю видалити область розширень, якщо у вас немає потреби в декількох доменних іменах (також деякі ЦА можуть не підтримувати її).

Процес

Після збереження вищезазначеної інформації (я знаю, що це багато). Виконайте такі дії:

  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та подивившись на вихід. У поточному вікні SP2 для Windows 2003 "Криптографічний провайдер Microsoft RSA SChannel" вказаний у якості доступного постачальника, тому переконайтесь, що у вашому файлі встановлені котирування належним чином, і що запис є лише в одному рядку (без упаковки чи багато рядків).

Ви також можете змінити ProviderName на ProviderType і використати номер, що надається результатом certreq -csplist.

У цьому випадку я отримую такий результат:

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

Тож я можу або використовувати

ProvderName = "Microsoft RSA SChannel Cryptographic Provider"

або

ProviderType = 12

Спасибі. Як я готую його вручну?
Сонячно

Також - ще невдале питання - чи не має значення для "поновлення", що сертифікат видасть новий постачальник?
Сонячно

Наскільки я знаю, оновлення вимагає того ж КА, що видає, щоб надіслати вам оновлений сертифікат, оскільки оновлення зберігає один і той же відкритий і приватний ключ. Для іншого ЦО буде встановлено інший набір ключів для підписання, і тому ваша пара відкритих / приватних ключів буде іншою.
Джошуа

Джошуа, він повідомляє про це: Процесор запиту сертифікатів: Дані недійсні. 0x8007000d (WIN32: 13) mycert.inf (HashAlgorithm = "SHA256"). Ви впевнені, що це має спрацювати? В ориг. стаття, з якою ви пов’язані, такого налаштування немає.
Сонячно

Я видалив налаштування HashAlgorithm та FriendlyName (оскільки він скаржився на них), і ні, я отримую: Процесор запиту сертифікатів: Тип постачальника не відповідає зареєстрованому значенню. 0x8009001b (-2146893797). Дуже погано.
Сонячно

1

Добре, щоб частково відповісти на моє власне питання - частину створення / використання нового сертифіката без видалення існуючого (тобто без зупинки сервера), я знайшов хороший опис на веб-сайті Comodo - в основному мені потрібно створити "тимчасовий" веб-сайт на сервері та використовуйте його для створення нового КСВ, надішліть його для підписання та отримання та імпорту сертифіката.

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

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