1000+ инструкций в блоге SoftComputers
0 0 голоса
Рейтинг

В этой статье мы подробно рассмотрим, как установить и привязать бесплатный TLS/SSL сертификат от Let’s Encrypt на веб-сервере IIS, который работает на операционных системах Windows Server 2019/2016/2012 R2. Мы также затронем вопросы использования Let’s Encrypt для служб удаленных рабочих столов (Remote Desktop Services). В статье будут описаны шаги по установке, настройки сертификатов и автоматизации их обновления. Скриншоты будут сопровождать текст для наглядности процесса.

Приобрести оригинальные ключи активации можно у нас в каталоге:

Windows Server 2019 — от 2740 ₽

Windows Server 2016 — от 2470 ₽

Windows Server 2012 R2 — от 1370 ₽

Let’s Encrypt и ACME клиенты для Windows
TLS/SSL сертификат защищает данные пользователей, передаваемые по сети, предотвращая атаки «человек посередине» (man-in-the-middle), и гарантирует целостность информации. Let’s Encrypt — некоммерческий центр сертификации, который выпускает бесплатные TLS сертификаты X.509 через API для шифрования HTTPS-соединений. Сертификаты выдают только для валидации доменов (domain validation), и их срок действия составляет 90 дней (с ограничением — 50 сертификатов на один домен в неделю). Однако сертификаты можно автоматически обновлять по расписанию.

Для автоматического выпуска сертификатов используется API, называемый Automated Certificate Management Environment (ACME). Существуют три самых популярных клиента для работы с ACME на Windows:

Windows ACME Simple (WACS) — консольная утилита для выпуска сертификата и его привязки к сайту на IIS;

Powershell ACMESharp — библиотека для работы с ACME API через команды Powershell;

Certify — графический интерфейс для управления сертификатами через ACME API.

Клиент WACS для установки TLS сертификата Let’s Encrypt в IIS на Windows Server
Самый простой способ получить сертификат Let’s Encrypt — использовать утилиту Windows ACME Simple (WACS). Эта утилита — это пошаговый мастер, который позволяет выбрать сайт на IIS и автоматически выпустить для него SSL сертификат.

Шаги установки:

1. Предположим, у вас уже есть сайт на IIS под управлением Windows Server 2016. Ваша задача — переключить сайт на HTTPS, установив сертификат Let’s Encrypt.

2. Скачайте последнюю версию WACS с GitHub (например, win-acme.v2.0.10.444.zip).

3. Распакуйте архив в папку на сервере, например: c:\inetpub\letsencrypt.

4. Убедитесь, что на сервере установлен .NET Framework версии 4.7.2 или выше.

5. Откройте командную строку с правами администратора, перейдите в папку c:\inetpub\letsencrypt и запустите wacs.exe.

Запустится мастер генерации сертификатов. Чтобы быстро создать новый сертификат, выберите N: — Create new certificates (simple for IIS).

Выберите пункт 1. Single binding of an IIS site, если не требуется сертификат с псевдонимами (SAN). Если вам нужен Wildcard-сертификат, выберите опцию 3.

Далее утилита выведет список сайтов, запущенных на сервере IIS и предложит выбрать сайт, для которого нужно создать и привязать новый SSL сертификат.

Укажите ваш email, на который будут отправляться уведомления о проблемах с обновлением сертификата сайта и другие о повешения (можно указать несколько email через запятую). Осталось согласится с условиями использования и Windows ACME Simple подключится к серверам Let’s Encrypt и попытается автоматически сгенерировать новый SSL сертификат для вашего сайта.

Процесс генерации и установки SSL сертификата Let’s Encrypt для IIS полностью автоматизирован.

По умолчанию выполняется валидация домена в режиме http-01 validation (SelfHosting). Для этого нужно, чтобы в DNS домена имелась запись, указывающая на ваш веб сервера. При запуске WACS в ручном режиме можно выбрать валидацию типа — 4 [http-01] Create temporary application in IIS (recommended). В этом случае на веб-сервере IIS будет создано небольшое приложение, через которое сервера Let’s Encrypt смогут провести валидацию.

Примечание. При выполнении TLS/HTTP проверки ваш сайт должен быть доступен снаружи по полному DNS имени по протоколам HTTP (80/TCP) и HTTPS (443/TCP).

Утилита WACS сохраняет закрытый ключ сертификата (*.pem), сам сертфикат и ряд других файлов в каталог C:\Users\%username%\AppData\Roaming\letsencrypt-win-simple. Затем она в фоновом режиме установит сгенерированный SSL сертификат Let’s Encrypt и привяжет его к вашему сайту IIS. Если на сайте уже установлен SSL сертификат (например, самоподписанный), он будет заменен новым.

В IIS Manager откройте меню Site Binding для вашего сайта и убедитесь, что для него используется сертификат, выданный Let’s Encrypt Authority X3.

В хранилище сертификатов компьютера сертификат Let’s Encrypt для IIS вы можете найти в разделе Web Hosting -> Certificates.

Автоматизация обновления сертификатов и настройка редиректа
После установки сертификата, в планировщике заданий Windows появится задание для автоматического продления сертификата через 60 дней. Команда для обновления сертификата вручную выглядит так:

C:\inetpub\letsencrypt\wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org"

Чтобы настроить перенаправление HTTP трафика на HTTPS, установите модуль Microsoft URL Rewrite Module. Далее в файле web.config добавьте следующий код:

Скачать отдельно данный код.

Также вы можете настроить перенаправление трафика через URL Rewrite через графический интерфейс IIS Manager. Выберите Sites -> yoursitename -> URL Rewrite.

Создайте новое правило Add Rule => Blank rule.

Укажите имя правила и измените значения параметров:

— Requested URL => Matches the Pattern

— Using => Regular Expressions

— Pattern => (.*)

В блоке Conditions измените Logical Grouping -> Match All и нажмите Add. Укажите:

— Condition input => {HTTPS}

— Check if input string => Matches the Pattern

— Pattern => ^OFF$

Теперь в блоке Action выберите:

— Action Type => Redirect

— Redirect URL => https://{HTTP_HOST}/{R:1}

— Redirect type => Permanent (301)

Откройте браузер и попробуйте открыть ваш сайт по HTTP адресу, вас должно автоматически перенаправить на HTTPS URL.

Использование сертификатов Let’s Encrypt для Remote Desktop Services

Для настройки SSL сертификатов Let’s Encrypt в службах Remote Desktop Services (RDS), следуйте аналогичным шагам, что и для IIS. С помощью WACS можно выпустить сертификат и привязать его к RDS Gateway. Для автоматизации процесса привязки сертификата используйте PowerShell скрипт ImportRDGateway.ps1 (Главный недостаток скрипта – приходится вручную указывать отпечаток нового сертификата), или его модифицированную версию ImportRDGateway_Cert_From_IIS.ps1, которая автоматически обновляет сертификат после его перевыпуска.

Для автоматической привязки сертификата скачайте скрипт ImportRDGateway_Cert_From_IIS.ps1 и запустите его:

powershell -File ImportRDGateway_Cert_From_IIS.ps1

Если у вас RDS Gateway живет на стандартном IIS сайте «Default Web Site» с индексом 0, можете использовать скрипт без изменений.

Чтобы получить ID сайта в IIS, откройте консоль PowerShell и выполните:

Import-Module WebAdministration

Get-ChildItem IIS:Sites

Получите список вида:

В колонке ID указан индекс вашего сайта, отнимите от него единицу. Полученный индекс вашего сайта нужно указать вместо 0 в 27 строке скрипта PowerShell:

$NewCertThumbprint = (Get-ChildItem IIS:SSLBindings)[0].Thumbprint

Теперь откройте задание планировщика win-acme-renew (acme-v02.api.letsencrypt.org) и на вкладке Action добавьте новое задание, которое запускает скрипт ImportRDGateway_Cert_From_IIS.ps1 после обновления сертификата.

Чтобы не менять разрешения на выполнение скриптов PowerShell, вы можете вызывать скрипт командой:

PowerShell.exe -ExecutionPolicy Bypass -File c:\inetpub\letsencrypt\ImportRDGateway_Cert_From_IIS.ps1

Теперь скрипт привязки SSL сертификата к службам RDS будет выполнятся сразу после продления сертификата Let’s Encrypt. При этом автоматически перезапускается служба RD Gateway командой:

Restart-Service TSGateway

При перезапуске службы TSGateway все текущие сессии пользователей разрываются, поэтому желательно изменить периодичность запуска задания обновления сертфиката на 1 раз в 60 дней.

Также вы можете использовать бесплатные сертификаты Let’s Encrypt в Linux для веб сайтов на Nginx или apache. Cертификаты Let’s Encrypt в настоящий момент широко используются на сайтах многих крупных компаний и им доверяют все браузеры. Теперь ваш сайт или служба RDS защищены актуальным сертификатом от Let’s Encrypt.

author avatar
copywriter
banner for Windows Server 2019
Лицензионный ключ активации Windows Server 2019 от
2190 ₽ Купить
0 0 голоса
Рейтинг
Подписаться
Уведомить о
guest
     
0 отзывов
665
Межтекстовые Отзывы
Посмотреть все комментарии