bg-tutorials

Как сгенерировать CSR в IIS

В этом руководстве показано, как создать CSR (запрос на подписание сертификата) на Microsoft IIS (Internet Information Services) на Windows Server. Вы можете сформировать запрос двумя способами: через графический интерфейс IIS Manager (классический мастер с пошаговыми окнами) или с помощью certreq.exe и INF-файла из PowerShell. Оба способа сохраняют закрытый ключ на сервере в хранилище сертификатов Windows и создают запрос PKCS #10, который вы отправляете в свой удостоверяющий центр (CA).

Важная оговорка, о которой нужно знать заранее: мастер IIS Manager не добавляет в запрос Subject Alternative Name (SAN), а все публичные CA теперь требуют, чтобы имя хоста присутствовало в SAN, а не только в Common Name. Если вам нужен SAN (а он нужен почти всегда), используйте метод certreq.exe, описанный ниже, либо создайте CSR вне сервера с помощью нашего генератора CSR и импортируйте выпущенный сертификат в виде файла .pfx.

Войдите как администратор на сервер Windows Server, который вы хотите защитить (или на рабочую станцию, на которой запущен сайт IIS), затем перейдите к разделу, соответствующему вашей версии IIS. Приведённые ниже шаги охватывают IIS 10 на Windows Server 2025, 2022, 2019 и 2016 (а также IIS 10 на клиентских Windows 10 и Windows 11), а также более старые мастеры IIS 8 / 8.5 / 7 / 6 для устаревшей инфраструктуры.

Создание CSR на IIS 10 (Windows Server 2016-2025)

IIS 10 — это версия, которая поставляется с Windows Server 2016, 2019, 2022 и 2025, а также функция IIS на клиентских Windows 10 и Windows 11. Интерфейс Manager одинаков во всех этих выпусках.

Шаг 1: Откройте IIS Manager

  • Нажмите Win + R, введите inetmgr и нажмите Enter, либо
  • Откройте меню Пуск и найдите Internet Information Services (IIS) Manager.

Шаг 2: Откройте раздел Server Certificates

  • В панели Connections слева щёлкните имя сервера.
  • В центральной панели (Home) дважды щёлкните Server Certificates.

Шаг 3: Запустите создание запроса на сертификат

В панели Actions справа нажмите Create Certificate Request. Откроется диалоговое окно Distinguished Name Properties.

Шаг 4: Заполните Distinguished Name

Укажите данные субъекта ниже. Используйте только стандартные ASCII-символы; символы, не относящиеся к латинице, приводят к ошибке запроса:

  • Common Name: полное доменное имя (FQDN), которое вы хотите защитить, например www.example.com. Для wildcard-сертификата поставьте звёздочку перед корневым доменом, например *.example.com.
  • Organization: полное юридическое название вашей компании, в точности как оно зарегистрировано. Обязательно для сертификатов OV и EV. Для сертификатов с проверкой домена (DV) это поле игнорируется, поэтому можно указать любое короткое значение-заполнитель.
  • Organizational unit: название подразделения, например IT или Web. Этот атрибут устарел для публичных сертификатов (CA/Browser Forum постепенно отказывается от него), поэтому оставьте минимальное значение или пропустите поле, если диалог это позволяет.
  • City/locality: город, где зарегистрирована ваша организация, написанный полностью (например, Seattle, а не SEA).
  • State/province: полное название штата или региона (например, Washington, а не WA).
  • Country/region: двухбуквенный код страны по стандарту ISO (например, US, GB, DE).

Проверьте все поля и нажмите Next.

Шаг 5: Выберите поставщика криптографических услуг и длину ключа

В диалоговом окне Cryptographic Service Provider Properties:

  • Cryptographic service provider: выберите Microsoft RSA SChannel Cryptographic Provider. Это правильный выбор для RSA-сертификата, обслуживаемого IIS по HTTPS. (Выбирайте Microsoft DH SChannel Cryptographic Provider только в редких случаях, когда требуется ключ Diffie-Hellman, что не используется для обычного веб-TLS.)
  • Bit length: выберите 2048. Это текущий минимум, принимаемый всеми публичными CA. Выбирайте 3072 или 4096 только если этого требует ваша политика безопасности; недостатком будет немного более медленное установление TLS-соединения.

Нажмите Next.

Шаг 6: Сохраните файл CSR

В диалоговом окне File Name нажмите кнопку обзора и выберите папку, которую вы легко найдёте позже, затем введите имя файла с расширением .txt, например certreq.txt. Не соглашайтесь на путь по умолчанию C:WindowsSystem32: в этой папке неудобно искать файлы, и у вас может не быть прав на запись из-за UAC. Рабочий стол или отдельная папка C:certs подходят лучше.

Нажмите Finish. IIS запишет CSR по выбранному пути и сохранит соответствующий закрытый ключ как ожидающий запрос в хранилище сертификатов Windows на этом сервере.

Шаг 7: Скопируйте CSR и отправьте его в CA

Откройте сохранённый файл в Notepad (или любом текстовом редакторе). Вы увидите блок такого вида:

-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDXjCCAkYCAQAwgZQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9u
... (many lines of base64) ...
-----END NEW CERTIFICATE REQUEST-----

Выделите весь блок, включая строки BEGIN NEW CERTIFICATE REQUEST и END NEW CERTIFICATE REQUEST, скопируйте его и вставьте в поле CSR в форме заказа. Когда CA проверит запрос и выпустит ваш сертификат, следуйте инструкции как установить SSL-сертификат на IIS и используйте Complete Certificate Request, чтобы связать выпущенный файл .cer с ожидающим ключом на этом сервере.

Мастер IIS Manager не добавляет SAN

Мастер, описанный выше, создаёт запрос, единственным именем хоста в котором является Common Name. Современные браузеры и клиенты (Chromium, Firefox, Safari, .NET, Java, Go) проверяют соответствие имени хоста только по расширению Subject Alternative Name; Common Name не учитывается при принятии решений о доверии начиная с 2017 года. Публичные CA решают эту проблему, автоматически копируя CN в запись SAN для заказов на одно имя, поэтому запрос только с CN всё же работает для одного имени хоста. Но:

  • Если вам нужно несколько имён хостов в одном сертификате (например, example.com и www.example.com, или мультидоменный сертификат), мастер IIS Manager не может закодировать их.
  • Если ваш CA принимает запросы строго в том виде, в каком они отправлены, отсутствие SAN может привести к отклонению запроса даже для одного имени хоста.

Для чего-либо помимо одного имени используйте метод certreq.exe, описанный ниже, или создайте CSR с помощью нашего генератора CSR и импортируйте выпущенный сертификат в IIS в виде файла .pfx.

Создание CSR с помощью certreq.exe и INF-файла (с поддержкой SAN)

Инструмент командной строки certreq.exe входит в состав каждого Windows Server и позволяет указать SAN, длину ключа, точный субъект и провайдера. Процесс состоит из трёх частей: создать INF-файл запроса, выполнить команду certreq -new для генерации CSR (и соответствующего ключа в хранилище Windows), затем отправить CSR в свой CA.

Шаг 1: Создайте INF-файл запроса

Откройте Notepad от имени администратора и сохраните файл ниже как request.inf. Отредактируйте строку Subject и записи DNS в разделе [Extensions] в соответствии со своим доменом:

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=www.example.com, O=Example Inc, L=Seattle, S=Washington, C=US"
KeySpec = 1
KeyLength = 2048
Exportable = TRUE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
RequestType = PKCS10
KeyUsage = 0xa0

[EnhancedKeyUsageExtension]
OID = 1.3.6.1.5.5.7.3.1

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

Примечания к значениям:

  • Subject: одна строка, поля разделены запятыми. Используйте двухбуквенный код страны ISO в C=.
  • KeyLength: минимум 2048. Установите 3072 или 4096, если это требуется по вашей политике.
  • Exportable = TRUE: позволяет экспортировать закрытый ключ вместе с выпущенным сертификатом (для резервного копирования или установки на другой сервер). Установите FALSE, если хотите привязать ключ к этому компьютеру.
  • MachineKeySet = TRUE: сохраняет ключ в хранилище локального компьютера (откуда его считывает IIS). Оставьте это значение для IIS.
  • 2.5.29.17: OID для Subject Alternative Name. Добавьте по одной строке _continue_ на каждое имя хоста; каждая строка, кроме последней, должна заканчиваться разделителем &.

Шаг 2: Создайте CSR

Откройте командную строку Command Prompt или PowerShell с повышенными правами в папке, содержащей request.inf, и выполните:

certreq -new request.inf certreq.txt

certreq создаёт закрытый ключ в хранилище локального компьютера и записывает запрос PKCS #10 в файл certreq.txt. Откройте файл, скопируйте весь блок от BEGIN NEW CERTIFICATE REQUEST до END NEW CERTIFICATE REQUEST и отправьте его в форме заказа, так же как в методе через IIS Manager.

Когда CA вернёт выпущенный сертификат, завершите процесс командой:

certreq -accept certnew.cer

Это связывает выпущенный сертификат с закрытым ключом, ожидавшим в хранилище, и сертификат становится доступен для привязки в IIS.

Проверьте CSR перед отправкой (необязательно)

Перед отправкой запроса в свой CA стоит убедиться в правильности Common Name, записей SAN и размера ключа. На сервере встроенный инструмент certutil позволяет прочитать запрос:

certutil -dump certreq.txt

Если у вас установлен OpenSSL (Windows не поставляется с ним по умолчанию; его можно установить отдельно, например из сборки Shining Light Productions), эта команда выведет те же сведения:

openssl req -noout -text -in certreq.txt

Предпочитаете онлайн-инструмент? Вставьте содержимое запроса в декодер CSR от SSL Dragon, чтобы прочитать Common Name, записи SAN и размер ключа. Убедитесь, что Common Name совпадает с именем хоста, которое будут использовать клиенты, и что все необходимые имена присутствуют в списке Subject Alternative Name.

Создание CSR на IIS 8 и 8.5 (Windows Server 2012 / 2012 R2)

Мастер IIS 8 / 8.5 идентичен мастеру IIS 10. Расширенная поддержка Windows Server 2012 и 2012 R2 завершилась в октябре 2023 года, поэтому запланируйте перенос этих рабочих нагрузок на актуальную версию Windows Server; до этого момента приведённые ниже шаги всё ещё работают.

  • Нажмите Win + R, введите inetmgr и нажмите OK. (Либо откройте Internet Information Services (IIS) Manager с экрана Start.)
  • В разделе Connections выберите сервер, затем дважды щёлкните Server Certificates в панели Home.
  • В разделе Actions нажмите Create Certificate Request.
  • В диалоге Distinguished Name Properties заполните поля Common Name, Organization, Organizational unit, City/locality, State/province и Country/region точно так, как описано выше для IIS 10 (только стандартные ASCII-символы, полные названия штатов и городов, двухбуквенный код страны). Нажмите Next.
  • В диалоге Cryptographic Service Provider Properties выберите Microsoft RSA SChannel Cryptographic Provider и установите Bit length равным 2048. Нажмите Next.
  • В диалоге File Name выберите папку, которую легко найти позже, и сохраните файл с расширением .txt (например, certreq.txt). Нажмите Finish.
  • Откройте сохранённый файл в Notepad, скопируйте весь блок от BEGIN NEW CERTIFICATE REQUEST до END NEW CERTIFICATE REQUEST и вставьте его в форму заказа.

Такое же ограничение по SAN применимо и на IIS 8 / 8.5: если вам нужно больше одного имени хоста, используйте метод certreq.exe, описанный выше.

Создание CSR на IIS 7 (Windows Server 2008 / 2008 R2)

Поддержка Windows Server 2008 и 2008 R2 давно завершена, поэтому мастер IIS 7 следует рассматривать как устаревшую процедуру для систем, которые пока нельзя заменить. Процесс аналогичен IIS 8 / 10:

  • Нажмите Win + R, введите inetmgr и нажмите OK, либо откройте Start > Administrative Tools > Internet Information Services (IIS) Manager.
  • В разделе Connections выберите имя сервера, затем дважды щёлкните Server Certificates.
  • В разделе Actions нажмите Create Certificate Request.
  • В диалоге Distinguished Name Properties введите Common Name, Organization, Organizational unit, City/locality, State/province и Country/region, как описано для IIS 10. Нажмите Next.
  • В диалоге Cryptographic Service Provider Properties выберите Microsoft RSA SChannel Cryptographic Provider и 2048 бит. Нажмите Next.
  • Нажмите кнопку обзора под пунктом Specify a file name for the certificate request, выберите папку, введите имя файла с окончанием .txt и нажмите Finish.
  • Откройте сохранённый файл в Notepad, скопируйте весь блок запроса (включая строки BEGIN NEW CERTIFICATE REQUEST и END NEW CERTIFICATE REQUEST) и вставьте его в форму заказа.

Создание CSR на IIS 5 и 6 (устаревшие)

IIS 5 и 6 (Windows 2000 Server и Windows Server 2003) уже давно не поддерживаются и не должны использоваться для публичных сайтов. Используйте этот раздел только если вы поддерживаете устаревшую инфраструктуру, которую пока не можете заменить:

  • Откройте Start > Control Panel > Administrative Tools > Internet Information Services.
  • Щёлкните правой кнопкой мыши по Default Web Site (или вашему сайту) и выберите Properties.
  • Откройте вкладку Directory Security и нажмите Server Certificate.
  • В IIS Certificate Wizard выберите Create a new certificate и нажмите Next.
  • Выберите Prepare the request now, but send it later и нажмите Next.
  • Введите описательное имя для сертификата, установите Bit length равным 2048, оставьте остальные флажки не отмеченными и нажмите Next.
  • Введите юридическое название организации и подразделение (используйте короткое обозначение, например IT). Нажмите Next.
  • В поле Common Name введите FQDN вашего сайта, например www.example.com. Нажмите Next.
  • Заполните поля Country/region, State/province и City/locality, затем нажмите Next.
  • Выберите папку и имя файла (сохраните как .txt), нажмите Next, просмотрите сводку и снова нажмите Next, чтобы записать CSR.
  • Откройте файл в Notepad, скопируйте весь блок запроса и вставьте его в форму заказа.

После того как CA проверит ваш CSR и выпустит сертификат, продолжите с инструкциями по установке SSL на IIS.

Сэкономьте 10% на SSL-сертификатах при заказе сегодня!

Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

Детальное изображение дракона в полете
Написано

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