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-сертификатах. Превращает сложные темы кибербезопасности в понятный, увлекательный контент. Вносите свой вклад в повышение уровня цифровой безопасности с помощью впечатляющих рассказов.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.