Автоматический бесплатный сертификат Lets Encrypt на IIS
12 Jul 2017
local_offer
iis
Оказалось все достаточно просто. Копируем последнюю версию с https://github.com/Lone-Coder/letsencrypt-win-simple/releases, распаковываем и запускаем letsencrypt.exe с правами администратора.
После запуска утилита найдет все сайты на IIS и предложит сгенерировать сертификаты для них или предложит выполнить генерацию вручную.
Что делает утилита:
- Генерирует файл ответа в дериктории сайта.
Например:
C:\inetpub\wwwroot\.well-known\acme-challenge\{token}
Примечание. В файле web.config должны быть разрешены все расширения файлов. Утилита попытается сделать это сама во время автоматической установки.
Пример web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".*" mimeType="text/json" />
</staticContent>
<handlers>
<clear />
<add name="StaticFile" path="*" verb="*" type="" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" scriptProcessor="" resourceType="Either" requireAccess="Read" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" />
</handlers>
</system.webServer>
</configuration>
- Запрашивает сертификат с сайта LetsEncrypt, который обращается к файлу ответа.
- Если файл ответа существует, тогда сгенерированный сертифика сохраняется в дериктории
C:\Users\{username}\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\ - Затем через оснастку "Диспетчер служб IIS" привязывается к нужному сайту
- Пожеланию создается задача в "Планировщике заданий" для обновления сертификата
Команда обновления:
letsencrypt.exe --renew --baseuri "https://acme-v01.api.letsencrypt.org/"
В реестре HKEY_CURRENT_USER\Software\letsencrypt-win-simple\https://acme-v01.api.letsencrypt.org/\Renewals сохраняются даты и привязки сертификатов.
