Ssl сертификат бесплатно windows server

В этом обзоре мы расскажем об особенностях установки и привязки бесплатного TLS/SSL сертификата от Let’s Encrypt на хосте под управлением Windows. Будут описана процедура выпуска, продления сертификата для веб-сайта IIS, а также установка сертификата Let’s Encrypt для защиты подключений к службам RDS.

Содержание:

  • Получение и установка сертификат Let’s Encrypt в IIS на Windows
  • Продление (перевыпуск) сертификата Let’s Encrypt в Windows
  • Перенаправление трафика IIS сайта с HTTP на HTTPS адрес
  • Использование сертификата Let’s Encrypt для Remote Desktop Services

Некоммерческий центр сертификации Let’s Encrypt позволяет в автоматическом режиме через API выпускать бесплатные доверенные криптографические сертификаты X.509 для TLS-шифрования (HTTPS). Выдаются только сертификаты для валидации доменов (domain validation), со сроком действия 90 дней с возможность перевыпускать сертификат по расписанию.

API интерфейс, позволяющий автоматически выпускать сертификаты называется Automated Certificate Management Environment (ACME) API. Для Windows систем самой популярной реализации клиента ACME API является утилита Windows ACME Simple (WACS).

Получение и установка сертификат Let’s Encrypt в IIS на Windows

Для автоматизации получения SSL сертификата Let’s Encrypt в Windows можно использовать консольную утилиту Windows ACME Simple (WACS) (ранее проект назывался LetsEncrypt-Win-Simple). WACS представляет собой простой графический мастер, который позволяет выбрать сайт IIS и автоматически выпустить и привязать к нему SSL сертификат Let’s Encrypt.

Итак, у меня есть хост с Windows Server 2022, на котором развернут веб-сервер IIS и простой веб-сайт. Наша задача переключить сайт на HTTPS протокол, установив SSL сертификат от Let’s Encrypt.

Скачайте последнюю версию клиента WACS с GitHub (https://github.com/PKISharp/win-acme/releases) для вашей платформы. В нашем случае это win-acme.v2.2.9.1701.x64.pluggable.zip. Распакуйте архив в папку на диске.

Скачать клиент WACS (win-acme) c GitHub

Запустите утилиту
wacs.exe
с правами администратора.

Запустится интерактивный мастер генерации сертификата Let’s Encrypt и привязки его к сайту IIS. Чтобы быстро создать новый сертификат выберите
N: — Create certificate (default settings)
.

wacs.exe утилита для генерации сертификата letsencrypt в Windows

Утилита может выдать, что вебсайты не обнаружены:

No websites with host bindings have been configured in IIS. Add one in the IIS Manager or choose the plugin 'Manual input' instead.  

Source plugin IIS was unable to generate options

В этом случае, запустите консоль управления IIS (
inetmgr
), откройте меню Site Bindings вашего сайта и проверьте, что для сайта задано имя узла (Host Name). Подробнее об этом параметре в статье Как запустить несколько сайтов в IIS на одном порту и IP?

Задать hostname для веб сайта IIS

Выберите номер сайта, для которого нужно выпустить сертификат.

Затем нажмите
A
, чтобы выбрать все привязки сайта и
y
чтобы продолжить.

Примите условия пользовательского соглашения, нажав
y
.

Укажите email, на который будут отправляться уведомления о проблемах с обновлением сертификата сайта и другие о оповещения (можно указать несколько email через запятую).

wacs: http-01 validaciya имени сайта/домена при генерации сертификата let's encrypt

На этом этапе веб сервисы Let’s encrypt должны проверить, что вы являетесь владельцем домена, для которого выпускается. По умолчанию используется HTTP валидация (http-01 validation, SelfHosting). Для этого на вашем хосте запускается небольшой Http Challenge Server (если этот порт занят, используется IIS), на порт 80 которого выполняется подключение (входящий HTTP 80 порт должен быть открыт в файерволе). В папку веб-сервера будет записан файл ответа
\.well-known\acme-challenge\<random_filename>
.

Если по тем или иным причинам вы не можете выполнить ACME HTTP-01 валидацию, можно использовать DNS-01 валидацию. Для этого в DNS зоне вашего домена нужно создать специальную TXT запись. Эта опция доступна, если выбрать в первом меню клиента wacs пункт M: Create certificate (full options). ACME клиент при валидации домена проверяет наличие этой записи в DNS.

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

  • Закрытый ключ сертификата (*.pem) и сам сертификат (*.pfx) сохраняются в каталог
    C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates
  • Подробные логи всех операций WACS по запросу, получению и установке сертификата в каталоге
    C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Log

Если валидация выполнена успешно, утилита получит от CA сертификат, установит его в хранилище сертификатов и назначит в качестве SSL сертификата целевого сайта IIS. Если на сайте уже установлен SSL сертификат (например, самоподписанный), он будет заменен новым.

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

lets encrypt сертификата установлен для HTTPS сайта в IIS

Сертификат Let’s Encrypt для IIS установлен в раздел Web Hosting -> Certificates хранилища сертификатов компьютера (
certlm.msc
).

Сертификат let's encrypt в хранилище сертификатов Windowsv-hranilishe-windows

Можно автоматизировать выпуск сертификата с помощью аргументов утилиты wacs.exe. Например, выпустить сертификат Let’s Encrypt со стандартными настройками для сайта можно так:

wacs.exe --target manual --host 12345.winitpro.ru --store certificatestore --validation selfhosting --siteid "TestWebSite"

Продление (перевыпуск) сертификата Let’s Encrypt в Windows

Так как сертификаты Let’s Encrypt выпускаются всего на 90 дней, их нужно периодически обновлять. При генерации нового сертификата, утилита WACS сразу создает в планировщике задач Windows задание для автоматического продления (а фактически перевыпуска) сертификата.

Откройте консоль Task Scheduler (taskschd.msc). Как вы видите, в нем появилось задание win-acme renew (acme-v02.api.letsencrypt.org), которое запускает раз в день команду проверки срока действия и обновления установленных сертификатов:

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

задание планировщика Windows для обновления tls сертфиката letsencrypt через win acme renew

Продлить (обновить) сертификат можно спустя 60 дней после его выпуска.

Перенаправление трафика IIS сайта с HTTP на HTTPS адрес

Так как для вашего сайта теперь установлен SSL сертификат, вы можете отказаться от использования незащищенного протокола HTTP и полностью перейти на HTSSP. Все HTTP запросы к сайту можно автоматически перенаправлять на HTTPS адрес с помощью IIS модуля Microsoft URL Rewrite Module.

Подробно это описано в статье Настройка редиректа HTTP на HTTPS в IIS на Windows Server.

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

Если для подключения внешних пользователей в корпоративную сеть вы используете шлюз Remote Desktop Gateway или RD Web Access, можете установить доверенный сертификат Let’s Encrypt вместо обычного самоподписанного сертификата. Рассмотрим, как корректно установить сертификат Let’s Encrypt для защиты служб Remote Desktop Services.

Если на Remote Desktop Gateway сервере поднята также роль RDSH, нужно запретить пользователям Read доступ к каталогу, в котором у вас хранится WACS (в моем примере это c:\ps\wacs) и к каталогу с сертификатами сертификат Let’s Encrypt (C:\ProgramData\win-acme).

С помощью wacs.exe на сервере RDGW выпустите Let’s Encrypt сертификат для Default Web Site в IIS как описано выше. Можно вручную привязать это сертификат к нужным служба RDS. Но вам придется выполнять эти действия вручную каждые 60 дней при перевыпуске сертификата Let’s Encrypt.

В проекте ACME есть готовый PowerShell скрипт для автоматического импорта Let’s Encrypt в RD Gateway (…\Scripts\ImportRDGateway.ps1). Недостаток этого скрипта – приходится вручную указывать отпечаток нового сертификата:

ImportRDGateway.ps1 <certThumbprint>

Для автоматического получения отпечатка сертификата с указанного сайта IIS используйте доработанный скрипт ImportRDGateway_Cert_From_IIS.ps1 (основан на стандартном ImportRDGateway.ps1).

Инструкция и модифицированный PowerShell скрипт присланы нашим читателем Антоном, за что посылаем ему лучи благодарности!

Вы можете запустить это скрипт вручную:

powershell -File ImportRDGateway_Cert_From_IIS.ps1

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

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

Import-Module WebAdministration
Get-ChildItem IIS:Sites

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

Get ChildItem IIS Sites - получить индексы сайтов в IIS

В колонке ID указан индекс вашего сайта, отнимите от него единицу. Полученный индекс вашего сайта нужно указать вместо 0 в 27 строке скрипта PowerShell:
$NewCertThumbprint = (Get-ChildItem IIS:SSLBindings)[0].Thumbprint

ImportRDGateway_Cert_From_IIS - powershell скрипт для привязки ssl сертфиката из iis к rds

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

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

PowerShell.exe -ExecutionPolicy Bypass -File c:\ps\acme\scripts\ImportRDGateway_Cert_From_IIS.ps1

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

Restart-Service TSGateway

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

Windows ACME Simple — утилита, с которой установка SSL-сертификата на сайт пройдёт легко и просто. Рассказываем, как получить бесплатный SSL-сертификат Let’s Encrypt и подключить его к сайту на IIS-сервере с помощью WACS.

Знак закрытого замка́ в адресной строке сайта означает, что соединение между компьютером пользователя и сервером с сайтом защищено шифрованием. На наличие «правильного» знака замка́ обращают внимание, пожалуй, почти все посетители — хотя бы потому, что современные браузеры не любят незащищённые соединения: многие из них отказываются переходить по ссылкам, которые начинаются с http:// и выводят сообщение о потенциальной опасности. Чтобы обмен данными шёл по защищённому протоколу HTTPS, на сайт устанавливают специальные SSL-сертификаты, которые гарантируют, что передаваемые данные зашифрованы, а злоумышленники, даже перехватив их, не смогут их прочитать.

В статье рассказываем, как установить сертификат Let’s Encrypt на веб-сайт, расположенный на IIS-сервере с установленной ОС Windows Server 2016/2012 R2.

Чтобы выдать сертификат Let’s Encrypt, удостоверяющая организация должна убедиться, что вы владеете доменом, для чего она отправит запрос, который должен быть правильно обработан. На системах под управлением Linux для этого нужна сложная настройка сервера, но на Windows всё довольно просто: пользователю не нужно ничего настраивать, специальная утилита сделает это в автоматическом режиме.

Подготовка к установке

Перед установкой нужно остановить все службы TrueConf Server. Также убедитесь, что порты 80 и 443 открыты и свободны. Если понадобится, нужно остановить процессы, которые могут их занимать (например, Apache HTTP Server).

Настройка Windows

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

  1. Зайдите в панель управления IIS и выберите нужный сайт из списка:
  1. В области справа выберите «Привязки…»:
  1. Затем измените привязку существующей записи или добавьте новую:
Изменение привязки существующей записи

  1. Сохраните изменения и выйдите из панели управления IIS.

Устанавливаем Windows ACME Simple

Подготовка

Устанавливать Let’s Encrypt мы будем с помощью программы Windows ACME Simple (WACS). WACS отвечает за выпуск сертификата и привязывает его к веб-ресурсу с минимальным участием пользователя.

  1. Скачать программу можно из репозитория GitHub.
  2. Выберите версию в соответствии с разрядностью вашей ОС.
Выбор версии в соответствии с разрядностью ОС

  1. Извлеките содержимое архива в любую директорию.

Установка Windows ACME и получение сертификата

  1. Запустите командную строку из-под пользователя с рут, зайдите в распакованную папку и запустите wacs.exe. По умолчанию программа запросит выпуск сертификата в der-формате, но если вы хотите получить его формате .pem, то используйте дополнительные команды, введите в командной строке:
wacs.exe --store pemfiles --путь_к_целевому_каталогу C:\Certificates

Где путь_к_целевому_каталогу — это путь к папке, куда утилита загрузит полученный pem-файл.

  1. Откроется окно, где WACS предложит выбрать действие. В разных версиях утилиты описания действий могут отличаться, но в целом понятно, что нужно выбирать, в любом варианте:
WACS предлагает выбрать действие


WACS предлагает определить действие

Чтобы создать новый сертификат Let’s Encrypt, вводите символ N.

  1. Затем выберите среди перечисленных сайт, который привязан к нужному доменному имени и отвечает на связанные с ним запросы. На этом этапе доступен мультивыбор: номера вводятся через запятую. В примере сайт только один, поэтому мы вводим «1». Нажмите «Ввод».
Выбор сайта в WACS

  1. Далее выберем привязки. Если у сайта их несколько, то вводим «3»:

Внимательно читайте сообщения утилиты, в некоторых её версиях на этом этапе для выбора всех привязок нужно ввести А.

  1. Укажите электронный почтовый адрес для получения оповещений, прочтите «Соглашение пользователя», затем подтвердите корректность введённых данных.
  2. WACS сама настроит сервер, инициирует проверку и выдачу сертификата. Также программа добавит в «Планировщик Windows» повторяющуюся задачу на его перевыпуск.
  3. Для завершения введите Q.

Ещё один способ выпустить сертификат — приобрести платный или бесплатный SSL-сертификат у AdminVPS на странице продукта.

Проверьте, что сертификат установлен правильно

  • После подключения Let’s Encrypt ресурс будет доступен по защищённому соединению HyperText Transfer Protocol Secure. Для проверки перейдите на ваш ресурс: введите в адресной строке имя сайта, начиная с https://.
  • Кроме того, удостовериться, что сертификат установлен, можно в панели управления IIS в модуле «Привязки сайта». Зайдите в него, кликните по https-сайту (с указанным портом 443), затем по «Изменить». Выберите «Просмотреть» напротив поля с названием SSL-сертификата.
Панель управления IIS

  • Также проверьте, создано ли задание на обновление в «Планировщике задач» (Task Scheduler). Это задание нужно, чтобы перевыпуск сертификата проходил автоматически. По умолчанию оно назначается на 9:00 ежедневно и будет запускать процесс апдейта командой, которая имеет вид:
C:\директория\wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org/"

Если вы собираетесь обновлять сертификат вручную, то укажите актуальный путь к wacs.exe.

Переводим веб-ресурс с HTTP на HTTPS

Сертификат установлен и сайт открывается по HTTPS через 443-й порт, теперь нужно запретить соединение по HTTP и направить поток данных по защищённому HTTPS. В этом нам поможет утилита URL Rewrite. Скачайте модуль с официального сайта разработчиков IIS.

Когда установка завершится, в панели управления веб-сервером вы увидите раздел URL Rewrite, в котором можно создать правило, перенаправляющее трафик.

Раздел URL Rewrite

Зайдите в него, пройдите по пути Actions → Add Rule(s) → Blank rule:

  • в поле Name задайте название правила.
  • в поле Requested URL установите Matches the Pattern из выпадающего списка.
  • в поле Pattern установите шаблон «.*».
Редактирование Inbound Rule

Раскройте блок Conditions и в поле Logical Grouping установите значение Match All и кликните по Add («Добавить»).

Затем в открывшемся окне Add Condition:

  • в поле Condition input вставьте значение {HTTPS},
  • в поле Check if input string — Matches the Pattern,
  • значение в поле Pattern — ^OFF$.

Для сохранения настроек нажмите ОК.

Разверните блок Action:

  • в поле Action type выберите Redirect,
  • в блоке Action properties в поле Redirect URL укажите https://{HTTP_HOST}/{R:1},
  • в Redirect type — значение Permanent (301).

Затем нажмите Apply в верхней части панели управления IIS для сохранения настроек.

Сохранение настроек в верхней части панели управления IIS

Для проверки перейдите на сайт, указав в его адресе http://. Если настройки применились корректно, вы будете перенаправлены на HTTPS-версию сайта.

Теперь вы знаете, как установить бесплатный SSL-сертификат Let’s Encrypt на IIS с Windows Server.

Читайте в блоге:

  • Как выпустить SSL-сертификат для сайта
  • Как включить протокол SSL на сайте
  • Как посмотреть SSL-сертификат на сайте и проверить его подлинность

В данной статье мы посмотрим, как можно установить бесплатный сертификат Let’s Encrypt на web-сайт, работающий на Internet Information Servises (IIS). Наш справочник уже содержит мануалы по установке такого сертификата на Ubuntu и на CentOs, поэтому отложим теорию и приступим.

В качестве примера для установки сертификата мы будем использовать VPS, работающий на Windows Server 2019. На нашем сервере мы развернули web-сервер из набора серверов IIS, на котором запустили сайт my-domain.host. Доступ к сайту осуществляется по протоколу http.

Доступ к сайту по HTTP - Как установить бесплатный сертификат Let's Encrypt на IIS

Задача – получить сертификат из Центра Сертификации Let’s Encrypt, установить его на наш web-сервер и привязать к нашему домену. Также, мы перенаправим трафик HTTP на протокол HTTPS. Другими словами, при попытке подключится к сайту по протоколу HTTP, система будет включать протокол HTTPS.

Получение сертификата

Наиболее простым способом установки SSL-сертификата от Let’s Encrypt является применение консольной утилиты WACS (Windows ACME Simple). WACS позволяет осуществить автоматический выпуск и привязку SSL-сертификата к сайтам, работающим на IIS. На момент написания данной статьи актуальной версией утилиты являлась версия v2.1.22.1289. Загрузка клиента WACS доступна со страницы проекта на GitHub – https://github.com/win-acme/win-acme/releases.

Страница загрузки WACS - Как установить бесплатный сертификат Let's Encrypt на IIS

После загрузки архива распакуйте его содержимое в каталог C:\inetpub\letsencrypt\ на вашем виртуальном сервере. Далее, запустите на исполнение файл wacs.exe. В открывшемся меню нужно выбрать опцию создания сертификата с установками по умолчанию. Для того, чтобы это сделать, введите символ N.

Запуск утилиты WACS

На следующем шаге утилита предложит выбрать сайт, для которого будет выпускаться сертификат. Поскольку в нашем случае в IIS находится всего один сайт, то мы можем нажать Enter. Если в списке будут находиться несколько сайтов, вы можете выбрать один или несколько из них, перечислив их номера через запятую. После чего нажмите символ A, чтобы выбрать все привязки, и символ y, чтобы подтвердить свой выбор.

Выбор сайта в WACS

Далее, утилита предложит открыть для прочтения Пользовательское соглашение, после чего попросит вас подтвердить своё согласие с ним. Необходимо будет ещё раз нажать y.

Пользовательское соглашение

После этого нужно будет ввести адрес электронной почты для связи с вами по возможным проблемам с SSL-сертификатом. Далее, утилита запустит процесс выпуска сертификата и привязки его к указанным вами доменам. В заключении нажмите Q для завершения работы WACS.

Создание сертификата

После этого ваш домен должен уже быть доступен при подключении к нему с использованием протокола HTTPS. Проверьте это, набрав в браузере имя вашего сайта с префиксом https://.

Доступ к сайту по HTTPS

Настройка протокола HTTPS

В менеджере IIS установленный сертификат можно просмотреть через меню Bindings... Для этого следует выбрать требуемый сайт с типом https, нажать Edit и в строке SSL certificate нажать View...

Просмотр сертификата в IIS

Плюс ко всему, утилита WACS создаёт задание в Планировщике заданий (Task Scheduler), предназначенное для продления срока действия установленного сертификата в автоматическом режиме. Задание будет ежедневно запускать на исполнение следующую команду:

C:\inetpub\letsencrypt\wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org/"
Задание в Task Scheduler

Поскольку наш сайт теперь доступен по 443-му порту (протокол HTTPS), есть смысл отказаться от использования доступа по протоколу HTTP. Для этого необходимо перенаправить трафик HTTP на наш HTTPS-сайт. Чтобы это сделать, потребуется произвести на сервере установку модуля Microsoft URL Rewrite Module. Данный софт доступен для загрузки по ссылке – https://www.iis.net/downloads/microsoft/url-rewrite.

Страница загрузки Microsoft URL Rewrite Module

После установки утилиты в профиле сайта на IIS появится кнопка URL Rewrite.

URL Rewrite

Используя её нужно будет создать новое правило для перенаправления трафика: Actions 🠒 Add Rule(s).... 🠒 Blank rule. В строке Name укажите имя для нового правила (в нашем примере это – HTTP Redirect Rule). В строке Requested URL следует выбрать Matches the Pattern, в строке Pattern наберите (.*). Также, в блоке настроек Conditions в строке Logical Grouping выберите Match All и нажмите Add. В окне Add Condition в строке Condition input укажите {HTTPS}, в строке Check if input string выберите Matches the Pattern, в строке Pattern наберите ^OFF$. После чего нажмите ОК.

Добавление правила - Как установить бесплатный сертификат Let's Encrypt на IIS

Также, в блоке настроек Action укажите Redirect в строке Action type, в строке Redirect URL наберите https://{HTTP_HOST}/{R:1} и в строке Redirect type выберите Permanent (301). Завершив настройки, примените внесённые изменения при помощи Apply в правом верхнем углу окна Internet Information Servises (IIS) Manager.

Блок Action - Как установить бесплатный сертификат Let's Encrypt на IIS

Теперь, перейдя в браузере по адресу вашего сайта с использованием протокола HTTP, веб-сервер должен будет перенаправить вас на адрес вашего сайта, но уже с префиксом https://.

Вместо заключения

В заключение всё-таки несколько слов о теории.

SSL-сертификаты делятся на три основных типа:

  • сертификаты, выпускаемые через проверку прав на домен – Domain Validated (DV);
  • сертификаты, подтверждающие домен и его принадлежность конкретному юридическому лицу – Organization Validation (OV);
  • и, наконец, сертификаты с расширенной проверкой – Extended Validation (EV).

Сертификат от Let’s Encrypt, получение которого мы описали в данном руководстве, относится к первой категории.

Также, сертификаты могут быть платными и бесплатными. Рассмотренный в нашей статье SSL-сертификат от Let’s Encrypt является бесплатным. Но является ли это его неоспоримым преимуществом?

С одной стороны, да. Бесплатный сертификат обходится потребителю заведомо дешевле, чем платный. Но, с другой стороны, бесплатные сертификаты всё же имеют некоторые минусы. Во-первых, бесплатные сертификаты имеют сравнительно короткий срок действия. По истечении его сертификату требуется перевыпуск. Происходит это постоянно через определённые промежутки времени. Во-вторых, Удостоверяющие Центры, выпускающие платные SSL-сертификаты, проверяют владельцев доменов. Тем самым они формируют более высокое доверие к сайту со стороны поисковых систем и пользователей. В третьих, преимуществом платных сертификатов является наличие финансовых обязательств Центра Сертификации перед доменом. Другими словами, при утечке с ресурса пользовательских данных пострадавший сайт получит компенсацию. Конечно, при условии, что на сайте использовался платный сертификат.

Если вам необходимо установить сертификат на Windows Server, давайте разберёмся, как это сделать. Если вы ещё не получили сертификат, то можете ознакомиться с инструкцией «Как сгенерировать запрос на SSL-сертификат в Windows Server».

Если файлы сертификата у вас на руках, приступаем к установке.

Добавляем сертификат на сервер

Для того чтобы загрузить сертификат, перейдите в Диспетчер серверов (Пуск — Администрирование — Диспетчер серверов).

Затем откройте Диспетчер служб IIS (Средства — Диспетчер служб IIS) и кликните на Сертификаты сервера.

Далее способ установки зависит от того, где вы генерировали CSR:

1) Если Вы генерировали CSR на том же сервере, куда устанавливаете сертификат.

В меню Действия кликните пункт Запрос установки сертификатов.

Добавьте .crt файл, в поле имя — укажите домен сайта и нажмите ОК.

2) Если Вы генерировали CSR через личный кабинет/самостоятельно, то предварительно экспортируйте сертификат с ключом в .pfx файл.

Чтобы добавить сгенерированный .pfx файл на сервер, в меню Действия нажимаем на кнопку Импортировать .

В открывшемся окне укажите расположение файла и пароль. Пароль задается при генерировании файла .pfx.

Сертификат загружен. В обоих вариантах, после добавления файла, сертификат будет доступен в разделе Сертификаты сервера. Осталось настроить доменное имя.

Подключаем SSL-сертификат на домен

Переходим в настройки сайта. В меню Подключения выберите сайт и кликните на пункт Привязки.

В открывшемся окне нажимаем Добавить и заполняем информацию:

Тип — https

Порт — 443

Имя узла — доменное имя.

IP address — IP-адрес сайта (для сертификата следует выделять отдельный IP для каждого сайта)

В поле SSL-сертификаты указываем созданный сертификат.

Перезагружаем сайт/сервер.

Проверяем — если сертификат установлен, то сайт будет доступен по https://.

Этот материал был полезен?

В этой статье мы подробно рассмотрим, как установить и привязать бесплатный 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.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Жесткий диск отображается как съемное устройство windows 10
  • Fix dns windows 2008
  • Windows 10 обновляется в спящем режиме
  • Активатор ворд 2010 windows 10
  • Windows консольное приложение служба