SSL-сертификат ACME на Windows Server IIS через win-acme

Печать
  • 0

На Windows-VPS или сервере с IIS бесплатный клиент win-acme одной командой получает сертификат Sectigo по Вашей подписке ACME, добавляет сайту HTTPS-привязку и создаёт задание планировщика для продления. Ниже описано, что подготовить в IIS, какую команду выполнить и как проверить продление.

Что понадобится

  • Доступ администратора к серверу через Remote Desktop.
  • IIS, в котором сайт уже работает по HTTP.
  • HTTP-привязка на порту 80 с заполненным Host name для каждого имени, которое должно попасть в сертификат (например example.com и www.example.com). win-acme берёт имена именно из привязок; привязки с пустым именем узла недостаточно.
  • DNS-записи домена указывают на сервер, а порты 80 и 443 разрешены в брандмауэре Защитника Windows.
  • Server URL, EAB MAC ID и EAB MAC Key из услуги Sectigo ACME Certificate-as-a-Service.

Шаг 1. Проверьте привязки в IIS

  1. Откройте Internet Information Services (IIS) Manager: через меню Tools в Server Manager или командой inetmgr.
  2. В панели Connections разверните сервер, затем Sites, и выберите сайт.
  3. Нажмите Bindings в панели Actions.
  4. Убедитесь, что для каждого имени есть привязка http на порту 80. Если какой-то нет, нажмите Add, выберите Type http, Port 80, введите имя в Host name и подтвердите.

Шаг 2. Скачайте win-acme

  1. Скачайте последнюю версию для своей системы (обычно x64) с официального сайта www.win-acme.com.
  2. Перед распаковкой щёлкните ZIP-файл правой кнопкой, откройте Properties и отметьте Unblock, если Windows показывает этот пункт; иначе система может не дать запустить программу.
  3. Распакуйте архив в постоянную папку, например C:\Program Files\win-acme. Не оставляйте его в «Загрузках»: задание продления запускает программу именно из этой папки.

Шаг 3. Выпустите и установите сертификат

Откройте Windows PowerShell от имени администратора и выполните команду ниже со своими значениями. В PowerShell строка продолжается на следующей, если заканчивается обратным апострофом (`); можно также записать всё в одну строку.

& "C:\Program Files\win-acme\wacs.exe" `
  --source iis --host example.com,www.example.com `
  --baseuri https://acme.sectigo.com/v2/DV `
  --eab-key-identifier YOUR_EAB_MAC_ID --eab-key YOUR_EAB_MAC_KEY `
  --emailaddress admin@example.com --accepttos `
  --store certificatestore --installation iis
ПараметрЧто делает
--source iisБерёт имена из привязок IIS (в версиях до 2.2 параметр называется --target)
--hostИмена для сертификата через запятую, без пробелов
--baseuriACME-сервер Sectigo (Server URL из личного кабинета)
--eab-key-identifier, --eab-keyEAB MAC ID и EAB MAC Key
--emailaddress, --accepttosКонтактный адрес ACME-аккаунта и согласие с условиями
--store certificatestoreСохраняет сертификат в хранилище сертификатов Windows
--installation iisСоздаёт или обновляет HTTPS-привязку на порту 443

win-acme проверяет домен по HTTP, устанавливает сертификат и при первом запуске создаёт в Task Scheduler задание для продления. Если что-то не получилось, выполните ту же команду, добавив --verbose, чтобы подробно увидеть каждый шаг.

Шаг 4. Убедитесь в результате

  • Откройте https://example.com в браузере и проверьте сертификат, нажав на замок: издатель, имена и дата окончания.
  • В IIS Manager снова откройте Bindings для сайта: теперь там должна быть привязка https на порту 443 с выбранным новым сертификатом.
  • В Task Scheduler найдите задание, название которого начинается с win-acme renew. Оно запускается ежедневно и продлевает сертификат, когда подходит срок.

Шаг 5. Проверьте и протестируйте продление

win-acme хранит продления отдельно для каждого ACME-сервера, поэтому всегда указывайте тот же --baseuri, что и при выпуске:

& "C:\Program Files\win-acme\wacs.exe" --list --baseuri https://acme.sectigo.com/v2/DV
& "C:\Program Files\win-acme\wacs.exe" --renew --force --baseuri https://acme.sectigo.com/v2/DV

Первая команда показывает зарегистрированные продления и дату следующего. Вторая сразу запускает принудительное продление; используйте её один раз для проверки, а не регулярно. Без --baseuri win-acme смотрит на свой сервер по умолчанию и выводит пустой список, и кажется, будто продление пропало.

Частые проблемы

  • Привязки не найдены или имя (host) не найдено. У сайта нет HTTP-привязки с этим именем узла. Добавьте её, как в шаге 1.
  • Проверка завершается по таймауту. Порт 80 закрыт в брандмауэре Защитника Windows или другом файрволе, либо DNS ещё указывает на другой сервер.
  • Ошибки unauthorized или ошибки аккаунта. EAB MAC ID или EAB MAC Key скопированы не полностью, либо запрошенного имени нет в списке доменов подписки.
  • На сервере с несколькими сайтами браузер показывает чужой сертификат. Проверьте, что у каждой HTTPS-привязки заполнено имя узла и отмечен пункт Require Server Name Indication.
  • Продление не происходит. Задание удалено или отключено, либо папку win-acme перенесли после установки. Выполните команду из шага 3 ещё раз из постоянной папки.

Подробные журналы win-acme пишет в C:\ProgramData\win-acme. Если нужна помощь, откройте тикет и приложите нужную часть журнала, без EAB MAC Key.

Полезные статьи

Помог ли вам данный ответ?

Нужна помощь? Позвоните нам +373 795-800-80