Все руководства по развёртыванию Развёртывание

Как установить SSL-сертификат на Windows IIS

Microsoft IIS (Internet Information Services) использует формат PFX для SSL-сертификатов — отличный от PEM-файлов, которые создают GetHTTPS и большинство инструментов на базе Linux. Это руководство описывает конвертацию сертификата и его установку на IIS 10.

Предварительные требования

  • Windows Server с установленным IIS 10
  • Файлы сертификата от GetHTTPS: cert.pem, privkey.pem, chain.pem
  • OpenSSL установлен (поставляется с Git for Windows или устанавливается отдельно)

Шаг 1: Конвертация PEM в PFX

IIS не может напрямую читать PEM-файлы. Конвертируйте в формат PFX с помощью OpenSSL:

openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem

Вам будет предложено задать пароль экспорта — запомните его для этапа импорта.

Нет OpenSSL? Если у вас установлен Git for Windows, OpenSSL находится по пути C:\Program Files\Git\usr\bin\openssl.exe. Или скачайте его с slproweb.com/products/Win32OpenSSL.html.

Подробнее о форматах сертификатов: Объяснение PEM, PFX, DER

Шаг 2: Импорт PFX в IIS

  1. Откройте Диспетчер служб IIS (выполните inetmgr)
  2. Нажмите на имя сервера в левой панели
  3. Дважды щёлкните Сертификаты сервера в центральной панели
  4. Нажмите Импорт… в правой панели действий
  5. Укажите путь к файлу certificate.pfx
  6. Введите пароль экспорта, заданный на шаге 1
  7. Выберите хранилище сертификатов: Web Hosting (или Личное)
  8. Нажмите ОК

Сертификат теперь отображается в списке сертификатов сервера.

Шаг 3: Привязка HTTPS к сайту

  1. В диспетчере IIS разверните Сайты в левой панели
  2. Щёлкните правой кнопкой мыши на сайте → Изменить привязки…
  3. Нажмите Добавить…
  4. Установите:
    • Тип: https
    • Порт: 443
    • Имя узла: yourdomain.com (оставьте пустым для всех имён узлов)
    • SSL-сертификат: выберите только что импортированный сертификат
  5. Нажмите ОК
  6. Повторите для www.yourdomain.com, если необходимо

Шаг 4: Перенаправление HTTP на HTTPS

Установите модуль URL Rewrite (если ещё не установлен), затем добавьте в web.config вашего сайта:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="HTTP to HTTPS" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Шаг 5: Проверка

Откройте https://yourdomain.com в браузере. Нажмите на значок замка, чтобы проверить данные сертификата.

Проверка через PowerShell:

# Проверка сертификата, привязанного к порту 443
netsh http show sslcert

Устранение неполадок

”A specified logon session does not exist”

Закрытый ключ не был правильно импортирован. Повторно экспортируйте PFX-файл с помощью:

openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem -passout pass:YourPassword

Убедитесь, что PFX был создан из соответствующих друг другу файлов ключа и сертификата.

Сертификат не отображается в выпадающем списке привязки

Импорт мог завершиться неудачно без уведомления. Проверьте Просмотр событий → Журналы Windows → Приложение на наличие ошибок. Убедитесь, что пароль PFX правильный и файл не повреждён.

”This site is not secure” после привязки

Проверьте, что цепочка сертификатов полная. Файл chain.pem должен быть включён в конвертацию PFX (-certfile chain.pem). Без него браузеры не могут проверить цепочку доверия.

Часто задаваемые вопросы

Можно ли использовать сертификат Let’s Encrypt с IIS?

Да. Сертификаты Let’s Encrypt работают с любым сервером, включая IIS. Единственный дополнительный шаг — конвертация PEM в формат PFX. GetHTTPS выдаёт PEM-файлы; приведённая выше команда OpenSSL конвертирует их.

Есть ли инструмент вроде Certbot для IIS?

win-acme (ранее letsencrypt-win-simple) — самый популярный ACME-клиент для Windows/IIS. Он обрабатывает выпуск сертификата, конвертацию в PFX, привязку к IIS и автоматическое обновление в одном инструменте. Используйте его, если хотите полностью автоматизированный Let’s Encrypt на IIS.

Как обновить сертификат на IIS?

  1. Получите новый сертификат на GetHTTPS
  2. Конвертируйте в PFX: openssl pkcs12 -export -out new.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem
  3. Импортируйте новый PFX в Диспетчере IIS → Сертификаты сервера
  4. Обновите привязку сайта для использования нового сертификата
  5. Удалите старый сертификат из раздела сертификатов сервера

Для автоматического обновления рассмотрите win-acme — он обрабатывает весь цикл автоматически.

Поддерживает ли IIS сертификаты ECDSA/ECC?

IIS 10 на Windows Server 2016+ поддерживает сертификаты ECDSA. GetHTTPS по умолчанию генерирует ECDSA P-256, который работает с современным IIS. Старые версии IIS (8.5 и ниже) могут требовать RSA-сертификаты.

Можно ли использовать IIS с несколькими сайтами на одном IP?

Да. IIS 8+ поддерживает SNI (Server Name Indication), что позволяет использовать несколько SSL-сертификатов на одном IP-адресе. При добавлении HTTPS-привязки отметьте “Require Server Name Indication” и введите имя узла. Каждый сайт может иметь собственный сертификат.

Как найти OpenSSL в Windows?

OpenSSL не включён в Windows по умолчанию. Распространённые источники:

  • Git for Windows включает его по пути C:\Program Files\Git\usr\bin\openssl.exe
  • Chocolatey: choco install openssl
  • Сборки Win32/Win64: скачайте с slproweb.com

После установки добавьте его в PATH или используйте полный путь в командах.

Похожие статьи

Начало работы 2026-05-08
Как получить бесплатный SSL-сертификат (пошаговое руководство)
Получите бесплатный SSL-сертификат от Let's Encrypt за 5 минут --- без установки программ, без создания аккаунта. Полное руководство: 4 метода, оба типа проверки, установка на 6 платформах и устранение неполадок.
SSL и сертификаты 2026-05-07
Форматы SSL-сертификатов: PEM, PFX, DER -- подробное объяснение
Разберитесь в форматах сертификатов PEM, PFX/PKCS#12 и DER. Узнайте, какой формат нужен вашему серверу и как конвертировать между ними с помощью OpenSSL.
Развёртывание 2026-05-07
Как перенаправить HTTP на HTTPS
Принудительное перенаправление всего трафика на HTTPS с помощью серверных редиректов. Примеры конфигурации для Nginx, Apache и .htaccess с постоянными перенаправлениями 301.
Получите бесплатный SSL-сертификат в браузере
Без установки, без аккаунта. Ваш приватный ключ никогда не покидает устройство.
Получить сертификат