Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Для успешного подключения к ферме, нам необходимо установить SSL сертификат. В данный момент я не буду рассматривать самоподписанный, так как коммерческий стоит не так и дорого, чтоб не иметь возможности его приобрести, да и как правило в организации уже зачастую есть wildcard сертификат для других нужд. Так же совершенно спокойно можно использовать Let’s Encrypt сертификат с автоматическим перевыпуском и установкой на все необходимые сервисы, которым мы и воспользуемся.

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

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Используемые термины: Remote Desktop Gateway, Active Directory, Терминальный сервер.

В данном руководстве мы рассмотрим развертывание роли шлюза удаленных рабочих столов (Remote Desktop Gateway или RDG) на отдельном сервере с Windows Server 2019. Действия будут аналогичны для Windows Server 2012 и 2016 (даже, в основных моментах, 2008 R2). Предполагается, что в нашей инфраструктуре уже имеются:

1. Служба каталогов Active Directory — настроено по инструкции Как установить роль контроллера домена на Windows Server.

2. Два терминальных сервера — настроено по инструкции Установка и настройка терминального сервера на Windows Server.

Пошагово, мы выполним следующие действия:

Установка серверной роли
Настройка шлюза
    Создание групп в AD
    Создание политик RDG
    Привязка сертификата
Настройка клиента для подключения
Remoteapp через Gateway
DNS round robin
Часто встречаемые ошибки

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

C:inetpubletsencryptwacs.exe —renew —baseuri «https://acme-v02.api.letsencrypt.org/»

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Возможные ошибки

Рассмотрим некоторые ошибки, с которыми мы можем столкнуться.

Missing command line flag or config entry for this setting

Ошибка появляется при попытке обновить сертификат для одного или нескольких доменов.

Открываем конфигурационный файл для домена, например:

Находим опцию webroot_map (как правило, в самом низу). Либо она будет пустой, либо указывать на неправильный путь. Исправляем это:

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

Пробуем обновить сертификат.

ACMEv1 is deprecated and you can no longer get certificates from this endpoint

Ошибка появляется при попытке запросить или обновить сертификат. Полный текст ошибки:

Причина: утилита на компьютере устарела. Она пытается использовать API-портал ACMEv1, который больше не поддерживается.

Решение: обновляем утилиту certbot.

а) Для Ubuntu/Debian:

б) Для Rocky Linux/CentOS:

yum update certbot

Установка роли

Открываем Диспетчер серверов:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Переходим в Управление — Добавить роли и компоненты:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

При появлении окна приветствия нажимаем Далее (при желании, можно поставить галочку Пропускать эту страницу по умолчанию):

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

На страницы выбора типа установки оставляем выбор на Установка ролей или компонентов:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Выбираем целевой сервер — если установка выполняется на сервере локально, то мы должны увидеть один сервер для выбора:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Ставим галочку Службы удаленных рабочих столов:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Дополнительные компоненты нам не нужны:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

На странице служб удаленных рабочих столов идем дальше:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Выбираем конкретные роли — нам нужен Шлюз удаленных рабочих столов. После установки галочки появится предупреждение о необходимости поставить дополнительные пакеты — кликаем по Добавить компоненты:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Откроется окно для настроек политик:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Откроется окно роли IIS:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

При выборе служб ролей веб-сервера ничего не меняем:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

В последнем окне ставим галочку Автоматический перезапуск конечного сервера, если требуется:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Дожидаемся окончания установки роли:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Сервер может уйти в перезагрузку.

Настройка RDG

Для настройки Microsoft Remote Desktop Gateway мы создадим группу компьютеров в Active Directory, настроим политику для RDG и создадим сертификат.

Создание групп для терминальных серверов

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

* в данном примере мы создаем группу All terminals в организационном юните Servers Group. Это группа безопасности (Security), локальная в домене (Domain local).

Добавим в нашу группу терминальные серверы:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

* в данном примере у нас используются два сервера — Terminal-1 и Terminal-2.

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

Для предоставления доступа к нашим терминальным серверам, создадим политики для подключений и ресурсов.

В диспетчере сервера переходим в Средства — Remote Desktop Services — Диспетчер шлюза удаленных рабочих столов:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Раскрываем сервер — кликаем правой кнопкой по Политики — выбираем Создание новых политик безопасности:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Устанавливаем переключатель в положении Создать политику авторизации подключений к удаленным рабочим столам и авторизации ресурсов удаленных рабочих столов (рекомендуется):

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Даем название политике:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Задаем параметры авторизации:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

В следующем окне есть возможность настроить ограничения использования удаленного рабочего стола. При желании, можно их настроить:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

* в нашем случае ограничений нет. При необходимости, устанавливаем переключатель в положение Отключить перенаправление для следующих типов клиентских устройств и оставляем галочки пункты для ограничений.

Далее настраиваем временные ограничения использования удаленного подключения. Если в этом есть необходимость, оставляем галочки в состоянии Включить и указываем количество минут, по прошествии которых сеанс будет отключен:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

В следующем окне мы увидим вне введенные настройки:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Откроется страница создания политики для авторизации ресурса — задаем для нее название:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Указываем группу пользователей, для которой будет применяться политика:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Теперь выбираем группу ресурсов, на которую будет разрешен доступ со шлюза терминалов:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

* мы выбрали группу, созданную нами ранее в AD.

Указываем разрешенный для подключения порт или диапазон портов:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

* в данном примере мы разрешим подключение по порту 3389, который используется по умолчанию для RDP.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Политики будут созданы.

Настройка сертификата

Для работы системы нам необходим сертификат, который можно купить или получить бесплатно от Let’s Encrypt. Однако, с некоторыми неудобствами, будет работать и самоподписанный. Мы рассмотрим вариант настройки с ним.

Запускаем «Диспетчер шлюза удаленных рабочих столов» — кликаем правой кнопкой по названию нашего сервера — выбираем Свойства:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Переходим на вкладку Сертификат SSL:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Выбираем вариант Создать сомозаверяющий сертификат и кликаем по Создать и импортировать сертификат:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Задаем или оставляем имя для сертификата — нажимаем OK:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Мы увидим информацию о создании сертификата:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Консоль диспетчера шлюза перестанет показывать ошибки и предупреждения:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Сервер готов к работе.

Wildcard

  • Подтвердить право использования доменом можно только с помощью DNS — таким образом, затрудняется процесс автоматического продления. Нужно использовать плагины, которые позволяют автоматически создавать нужную запись на DNS, но они доступны далеко не для всех поставщиков услуг DNS. В противном случае, обновлять Wildcard нужно вручную.
    Также, некоторые панели управления хостингом, например ISP Manager с версии 5 могут управлять процессом получения Wildcard от Let’s Encrypt с возможностью автоматического продления (но необходимо, чтобы домен обслуживался на данном хостинге).
  • Время действия сертификата также ограничено 3 месяцами.

Certbot

Необходимо, чтобы версия утилиты certbot была 0.22.0 и выше. Проверить текущую версию можно командой:

а) для CentOS / Red Hat:

б) для Ubuntu / Debian:

apt install —only-upgrade certbot

Процесс получения

Процесс очень похож на процесс получения сертификата с подтверждением домена в DNS.

* обратим внимание на 2 детали: 1) мы добавили опцию server, чтобы указать, на каком сервере Let’s Encrypt должна проходить проверка DNS; 2) мы получаем сертификат как для *.dmosk.ru, так и самого dmosk.ru, так как первое не включает второго.

Before continuing, verify the record is deployed.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

* в данном примере система попросила создать TXT-запись _acme-challenge.dmosk.ru со значением DN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI.

Заходим в панель управления DNS и создаем нужную запись. Если у нас свой сервер DNS, например, bind, то строка будет такой:

; TXT
_acme-challenge IN      TXT     DN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI

Не торопимся нажимать Enter — после настройки DNS нужно немного времени (пару минут), чтобы настройка применилась. Проверить появление записи можно командой с рабочего компьютера:

nslookup -type=txt _acme-challenge.dmosk.ru 8.8.8.8

Как только видим, что настройки применились, нажимаем Enter — если это наш первый запрос Wildcard для данного домена, то система нас попросит создать еще одну запись — повторяем процедуру, создав в DNS вторую запись TXT.

Если все сделали правильно, то увидим:

IMPORTANT NOTES:
 — Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/dmosk.ru/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/dmosk.ru/privkey.pem
   Your cert will expire on 2019-09-05. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   «certbot renew»
 — If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let’s Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

После получения сертификата мы не сможем экспортировать его с закрытым ключом. Мы можем изменить поведение, открыв файл settings.json в распакованном каталоге win-acme. Находим параметр PrivateKeyExportable и задаем ему значение:

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

.wacs.exe —renew —force

Читать также:  Каким должен быть сертификат о вакцинации против коронавируса для поездки в турцию

Или без обновления сертификата мы можем найти файл .pfx в каталоге: %programdata%win-acme$baseuri$certificates.

Пароль для pfx можно найти в интерактивном меню wacs:

При подключении мы можем столкнуть со следующими ошибками.

1. Учетная запись пользователя не указана в списке разрешений шлюза удаленных рабочих столов.

Причиной является отсутствие пользователя, под которым идет подключение к шлюзу, в группе, которой разрешено использование политики. Для решения проблемы проверяем настройки политики — группы пользователей, которым разрешено использование политики и к каким ресурсам разрешено подключение. В итоге, наш пользователь должен быть в нужной группе, а терминальный сервер, к которому идет подключение должен быть указан в соответствующей группе ресурсов.

Обращение к терминальному серверу выполняется по незарегистрированному имени. Необходимо проверить настройку в клиенте подключения или зарегистрировать ресурс, как мы это делали при настройке нескольких терминальных серверов.

3. Сертификат шлюза удаленных рабочих столов просрочен или отозван.

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

Настройка Remoteapp через Gateway

Предположим, у нас есть опубликованное приложение Remoteapp и мы хотим подключаться к терминальному серверу через настроенный шлюз. Для этого открываем rdp-файл приложения на редактирование (например, блокнотом) и вносим в него изменения:

  • gatewayhostname:s:rdg.dmosk.local — добавленная строка. Настройка говорит, что если при подключении к серверу нужно использовать шлюз, то это должен быт rdg.dmosk.local.
  • gatewayusagemethod:i:1 — отредактированная строка. Указывает, что необходимо использовать шлюз.

Изменение адреса в Connection Bar.

Вам нравится имя вверху RDCB01.OILSERVICE.LOCAL? Мне нет. Не зря же я делал RDS.OilService.Group

Другое дело, когда группа высокой доступности и ты там обязан вписать имя соединения, выбрав какое-нибудь красивое, а если один Брокер ?

Исправить это дело можно с помощью PowerShell. Давайте выполним командлет:

Set-RDSessionCollectionConfiguration -CollectionName «RDS» -CustomRdpProperty «full address:s:rds.oilservice.group» -ConnectionBroker RDCB01.oilservice.local

Командлет выполнился успешно.

Теперь снова скачаем ярлык с RdWeb и попробуем зайти, посмотреть что изменилось:

Строка состояния поменяла название. Чего и хотелось.

В следующей статье мы займемся виртуальными профилями на базе FSLogix.

Условия получения бесплатного сертификата от Let’s Encrypt

Прежде чем начать, необходимо знать о некоторых нюансах получения сертификата Let’s Encrypt:

  • При запросе выполняется проверка домена. Для этого необходимо:
    либо создать TXT-запись в DNS.либо поднять веб-сервер, далее в его корне создается каталог .well-known, а в нем файл с произвольным названием. После корневой центр отправляет запрос серверу на загрузку данного файла и, в случае успеха, выдает сертификаты для указанного доменного имени.
  • либо создать TXT-запись в DNS.
  • либо поднять веб-сервер, далее в его корне создается каталог .well-known, а в нем файл с произвольным названием. После корневой центр отправляет запрос серверу на загрузку данного файла и, в случае успеха, выдает сертификаты для указанного доменного имени.
  • SSL-сертификат выдается на 90 дней, поэтому необходимо по расписанию запускать команду на автоматическое продление ключа. Когда проходит 60 дней после начала использования нового сертификата, центр Let’s Encrypt может выдать новый.
  • Если выполнять запрос для домена 3 уровня и выше, он должен пройти DNS проверку на всех уровнях. Например, домен layer3.layer2.com должен отвечать на запросы как для layer3.layer2.com, так и для layer2.com.

Установка бесплатного TLS/SSL сертификата Let’s Encrypt в IIS/RDS в Windows Server 2016/2012 R2

В этом обзоре мы расскажем об особенностях установки и привязки бесплатного TLS/SSL сертификата от Let’s Encrypt для сайта на веб сервере IIS, запущенного на Windows Server 2019/2016/2012 R2.

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

1. Если мы подтверждаем право на домен при помощи веб-сервера, выполняем команду с таким синтаксисом:

  • certonly — запрос нового сертификата;
  • webroot — проверка будет выполняться на основе запроса к корню сайта;
  • agree-tos — даем согласие на лицензионное соглашение;
  • email — почтовый адрес администратора домена;
  • webroot-path — каталог в системе Linux, который является корневым для сайта;
  • d — перечисление доменов, для которых запрашиваем сертификат.

а) Пример запроса при использовании веб-сервера NGINX:

б) Пример запроса при использовании веб-сервера Apache:

После успешного выполнения команды, сертификаты будут созданы в каталоге /etc/letsencrypt/archive/dmosk.ru, а также симлинки на них в каталоге /etc/letsencrypt/live/dmosk.ru. При настройке приложений, стоит указывать пути до симлинков, так как при обновлении файлы в первом каталоге будут меняться, во втором — нет. Публичный ключ будет с именем cert.pem, а приватный — privkey.pem.

2. При подтверждении права на домен с TXT-записью:

  • certonly — запрос нового сертификата;
  • manual — проверка домена вручную.
  • preferred-challenges — указывает метод проверки домена.
  • agree-tos — даем согласие на лицензионное соглашение;
  • email — почтовый адрес администратора домена;
  • d — перечисление доменов, для которых запрашиваем сертификат.

На запрос подтверждения отвечаем Y — система выдаст что-то на подобие:

Once this is deployed,

* Данное сообщение говорит, что мы должны создать TXT-запись _acme-challenge.dmosk.ru со значением W2SC9b88y2j2oUjhxVgS7Bphph9g5PqhkBq9KiWkLTm.

Создаем соответствующую запись в панели управления DNS, и в консоли сервера нажимаем Enter для продолжения. Если, как в данном примере, мы запрашиваем сертификат для нескольких узлов, повторяем действия.

Открываем командную строку от администратора и переходим в распакованный каталог. Например, если архив распакован на диск C, выполняем:

* где 2.1.6.773.x64 — моя версия утилиты.

Если запускаем в Powershel, то так:

Утилита формирует бинарный сертификат для Windows, но если мы хотим получить файлы в формате pem, вводим:

wacs.exe —store pemfiles —pemfilespath C:Certificates

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

Откроется меню с выбором действия — вводим N, чтобы создать новый сертификат:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Обратите внимание, что в зависимости от версии win-acme, некоторые пункты могут отличаться. Внимательно просмотрите варианты.

Выбираем сайт в IIS, который отвечает на запросы нашего домена (в нашем случае, это единственный Default Web Site, то есть 1):

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Если для сайта создано несколько привязок, выбираем 3, чтобы создать сертификаты для всех:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Вводим email адрес и подтверждаем корректность данных:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Проверка домена

Как было сказано выше, для получения бесплатного сертификата, Let’s Encrypt должен удостовериться, что мы являемся владельцем домена. Свое право на его владение мы можем подтвердить, создав специальную TXT-запись или настроив веб-сервис, который будет отвечать на запросы.

Настройка веб-сервера

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

Запрашивать сертификат Let’s Encrypt проще всего с веб-сервера, на котором запущен сайт для домена. Возможен альтернативный вариант с монтирование сетевой папки, но его рассматривать не будем.

Linux NGINX

Пример простого конфигурационного файла для NGINX:

Если сервер уже используется для сайта, в секцию server добавляем:

При необходимости выполнять проверку и использовать rewrite/return, добавляем что-то подобное:

После проверяем конфигурацию и перезапускаем nginx:

service nginx reload

Linux Apache

Создаем общий конфигурационный файл, в котором пропишем алиас.

а) для CentOS:

Со следующим содержимым:

Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/

* в данном примере, запросы для страниц /.well-known/acme-challenge всех сайтов мы переводим в каталог /var/www/html/.well-known/acme-challenge.

Проверяем корректность конфигурационного файла:

И перезапускаем apache:

IIS должен отвечать на http-запрос до доменному имени, для которого мы планируем получить сертификат. Также в его настройках мы должны сделать привязку узла, для которого хотим получить сертификат к конкретному сайту. Для этого в консоли управления IIS раскрываем сайты и выбираем нужный нам (в данном примере, он всего один):

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

В меню справа кликаем по Привязки:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Изменяем привязку для имеющийся записи и, при необходимости, добавляем еще:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Применяем настройки и закрываем консоль управления IIS.

С помощью записи в DNS

Данный метод проще, описанного выше, но он позволит настроить автоматическое продление сертификата только для некоторых DNS, для которых есть отдельные certbot-плагины. Поэтому данный способ, в большинстве случаев, будет удобен для проведения тестов.

Автоматическое продление

Утилита certbot позволяет выполнить обновление сертификата в автоматическом режиме. В зависимости от операционной системы, инструменты различаются.

Смотрим полный путь до скрипта certbot:

Открываем на редактирование cron и добавляем следующее:

Если система вернет ошибку crontab: command not found, устанавливаем пакет cron:

apt install cron

* перавая команда для Deb, вторая — RPM.

а) для Ubuntu / Debian / Rocky Linux:

0 0 * * 1,4 /usr/bin/certbot renew —noninteractive

б) для CentOS:

0 0 * * 1,4 /bin/certbot renew —noninteractive

* в данном примере проверка и продление сертификата будет выполняться по понедельникам и четвергам (1,4) в 00:00. /usr/bin/certbot или /bin/certbot — путь, который мне выдала команда which certbot.

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

systemctl reload nginx

Однако, нам нужно, чтобы это происходило автоматически. Для этого открываем файл:

И добавляем строку:

Настройка задания на автоматическое продление создается при получении сертификата. Проверить задание можно в планировщике заданий Windows:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

IIS — SSL сертификат Let’s Encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Сегодня автоматизируем установку бесплатного SSL сертификата на сайт, который работает на web-сервере IIS 10. Операционная система Microsoft Windows 2016. Сертификат выдается лишь на 90 дней, но его всегда можно быстро обновить в автоматическом режиме.

Наличие SSL сертификата для сайта позволяет защитить данные пользователей, передаваемые по сети и гарантировать целостность переданных данных. Хотя, если вы попали на эту статью, то вы уже знаете для чего вам нужен сертификат.

Для установки сертификата будем использовать консольную утилиту LetsEncrypt-Win-Simple.

Подготовка

LetsEncrypt-Win-Simple берём здесь:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Я скачал версию v2.0.5.246. Распаковываем архив.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Папка win-acme.v2.0.5.246 нам потом пригодится для автоматического продления сертификатов, которое будет запускаться через Task Scheduler, не удаляйте.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Принимаем лицензионное соглашение, Install.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

.NET Framework 4.7.2 установлен.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Перезагружаем сервер. Подготовка к установке сертификатов завершена.

Устанавливаем SSL сертификат

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Для начала сгенерируем простой сертификат. Для этого выбираем Create new certificate, N. Нас спрашивают, какой сертификат делаем.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Для тестирования генерируем простой сертификат без псевдонимов (для установки сертификата с псевдонимами выберите 2). Пишем 1. Нам показывают список всех доменов, забинденных в IIS.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Нужно принять лицензионное соглашение. Если написать «y», то откроется PDF файл с соглашением. Принимаем лицензионное соглашением.

Читать также:  Где найти людей, которые не прошли вакцинацию или не успели принять меры, потому что у них стандартный счет на госуслугах?

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Заходим на https://setpizza.com/

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Всё работает, сертификат есть.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

В хранилище сертификатов:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Let’s Encrypt устанавливает также сертификаты промежуточных центров сертификации.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

443 порт добавился автоматически, сертификат выбрался автоматически.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

В планировщике добавилось ежедневное правило для обновления сертификатов.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Дополнительные настройки

Вы можете настроить почту для уведомлений.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Как нам подсказывают, нужно ручками подправить файл settings.config.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Лучше генерировать сертификаты с псевдонимами, например:

Установка сертификата на сервисы.

1. Заходим в оснастку конфигурации коллекции.

2. Применяем наш сертификат для сервисов:

RD Connection Broker – Publishing RD Web Access. Enable Single Sign On – нас пока не интересует.

3. Поставим чекбокс: Allow the certificate to be added to the Trusted Root Certification Authorities certificate store on the destination computers – для возможности установки сертификата на другие компьютеры с данной ролью. Это было бы справедливо с участием второго брокера в режиме высокой доступности.

4. Как видно, всё прошло успешно.

Несколько терминальных серверов и dns round robin

При наличие нескольких серверов терминалов, мы можем создать несколько записей в DNS, чтобы получать по round robin разные серверы:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Однако, при попытке подключиться к незарегистрированному серверу мы увидим ошибку:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Для решения переходим в настройку шлюза — кликаем правой кнопкой по Политики авторизации ресурсов и выбираем Управление локальными группами компьютеров:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Выбираем нужную группу компьютеров и нажимаем Свойства:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

* в моем случае это была единственная группа, созданная по умолчанию.

На вкладке Сетевые ресурсы добавляем имя, созданное в DNS:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Теперь подключение будет выполняться без ошибок.

Тестируем подключение.

1. Заходим на RdWeb. Видим, что проблем с сертификатом ни каких нет. Соединение защищено.

2. Давайте перед входом откроем скачанный RDP ярлык с RDWEB и посмотрим что там интересного:

  • Есть full address, имя, на которое происходит соединение.
  • loadbalanceinfo говорит, что при соединении, Брокер нас направит на член RDSH в коллекции RDS.
  • signature – ярлык подписан SSL сертификатом, потому любой компьютер будет ему доверять и мы не получим лишние предупреждение о недоверенном издателе:

3. Пробуем произвести соединение:

Данное предупреждение by design. Функция безопасности.

Данное предупреждение в домене можно убрать с помощью групповой политики:Указать отпечатки SHA1 сертификатов, представляющих доверенных издателей RDP

4. Как видно, Брокер нас перенаправил на RDS01.

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

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

Затем на сервере RDP GW, запускаете wacs.exe, как описано выше, и вы выбираете нужный сайт IIS (обычно, Default Web Site). Let’s Encrypt выдает вам новый сертификат, который устанавливается для веб-сайта и в планировщике появляется задание на автоматические обновление сертификата.

Вы можете вручную экспортировать данный сертификат и привязать его к нужным службам RDS через SSL binding. Но вам придется выполнять эти действия вручную каждые 60 дней при перевыпуске сертификата Let’s Encrypt.

Нам нужен скрипт, который бы сразу после получения (продления) сертификата Let’s Encrypt применял бы его для RD Gateway.

В проекте win-acme есть готовый PowerShell скрипт ImportRDGateway.ps1 (https://github.com/PKISharp/win-acme/tree/master/dist/Scripts), который позволяет установить выбранный SSL сертификат для служб Remote Desktop. Главный недостаток скрипта – приходится вручную указывать отпечаток нового сертификата: ImportRDGateway.ps1

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

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

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

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

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

Отметим, что сертификаты Let’s Encrypt в настоящий момент широко используются на сайтах многих крупных компаний и им доверяют все браузеры. Надеюсь, что судьба бесплатного центра сертификации Let’s Encrypt не постигнет участь WoSign и StartCom.

Получение сертификата по шагам

В данной статье будет описан реальный способ получения сертификата от Let’s Encrypt в ручном режиме для его дальнейшей установки на веб-сервер Windows (IIS/Microsoft Azure) или Linux (полностью ручной режим). Из-за отсутствия официального клиента под Windows для генерации сертификата будет использоваться дистрибутив Linux.

В первые дни открытия заявок на бета-тестирование и было принято решение записаться и вот недавно пришло письмо, которое сообщает о том, что теперь программа ACME сгенерирует валидный сертификат для нашего домена.

Далее мы решили опубликовать статью с пошаговой инструкцией процесса, чтобы к моменту релиза вы уже смогли оперативно создать и начать пользоваться своим сертификатом.

Выпуск Let’s Encrypt сертификата.

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

Мой внутренний домен: OilService.LocalВнешний: OilService.Group.

1. Для подключение к терминальной ферме я выберу более красивое имя: RDS.OilService.Group.

Так как у меня внутри домена нет этого имени, мы создаем новую зону просмотра и сделаем разрешение в IP адрес Брокера этого имени:

2. Создаем такое же имя на внешнем DNS Хостинге. В моем случае на nic.ru.

3. Скачиваем Wacs. https://www.win-acme.com/

Распаковываем и кладем допустим на диск C:

Далее нам нужно на нашем роутере открыть 80 порт для Брокера, так как Let’s Encrypt проводит проверку вэб сервиса. Я на своем роутере Mikrotik пробрасываю на IP адрес Брокера 80 порт.

4. Выпускаем сам сертификат:

Сертификат в формате PFX сохранился в папке: C:ProgramDatawin-acmeacme-v02.api.letsencrypt.orgCertificates

В лабораторной среде мне не нужно автоматически устанавливать сертификат на все сервисы и автоматизировать процесс перевыпуска, но в продуктивной среде я пользуюсь такой командой:Таким образом сертификат создается и привязывается автоматически ко всем сервисам RDS. В планировщике создается задача на перевыпуск. Можете спать спокойно. Чтобы этот сценарий работал, закрытый ключ сертификата должен быть помечен как экспортируемый. Набор PrivateKeyExportable в settings.json к true.

Установка утилиты для получения сертификата

1) Rocky Linux:

dnf install epel-release

2) на CentOS 8:

dnf —enablerepo=PowerTools install certbot

3) на CentOS 7:

yum install certbot

4) на Ubuntu 16.04 и выше, а также Debian:

5) на CentOS 6 или Ubuntu 14.04 / 12.04:

Создадим каталог, в котором будет храниться утилита и переходим в него:

Загружаем утилиту и разрешаем ее запуск:

chmod a+x ./letsencrypt-auto

Для удобства, делаем симлинк:

ln -s /opt/certbot/letsencrypt-auto /usr/local/sbin/certbot

При первом запуске certbot он автоматически предложит доустановить необходимые зависимости — соглашаемся.

LetsEncrypt-Win-Simple для Windows

На сайте GitHub скачиваем win-acme pluggable для нужной разрядности операционной системы:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Раcпаковываем скачанный архив в любую папку.

Как это работает

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

Смысл программного набора Automated Certificate Management Environment (ACME) (написан на Python) в том, чтобы автоматизировать генерацию и установку сертификата в Linux-окружении.

Существует неофициальный Windows-клиент с открытыми исходными кодами, который может генерировать и устанавливать сертификаты на Windows IIS и Amazon Web Services, но у нас была задача получить ключи и установить их вручную. Предлагаю любому желающему написать статью по работе с ним.

Получение бесплатного SSL сертификата Let’s Encrypt

Тематические термины: Let’s Encrypt, CentOS, Ubuntu

Процесс в данной статье описан на примере систем Linux CentOS, Ubuntu (Debian) и Windows. Настройка выполняется в несколько шагов.

Клиент WACS для установки TLS сертификата Let’s Encrypt в IIS на Windows Server

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

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Распакуйте архив в каталог на сервере с IIS: c:inetpubletsencrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Затем нужно выбрать тип сертификата. В нашем примере нет необходимости использовать сертификат с псевдонимами (несколькими SAN — Subject Alternative Name), поэтому достаточно выбрать пункт 1. Single binding of an IIS site. Если вам нужен Wildcard-сертификат, выберите опцию 3.

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Windows ACME Simple создает новое правило в планировщике заданий Windows (win-acme-renew (acme-v02.api.letsencrypt.org)) для автоматического продления сертификата. Задание запускается каждый день, продление сертификата выполняется через 60 дней. Планировщик запускает команду:

Читать также:  Курсы массажа в Петрозаводске без медицинского образования с сертификатом цена

Эту же команду вы можете использовать для ручного обновления сертфиката.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Наиболее простым способом установки 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.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Процесс по шагам

Внимание: эта инструкция учит создавать сертификат в ручном режиме, существуют и более простые способы автоматической генерации и обновления сертификатов. Надеюсь, что скоро их опишут на этом ресурсе.

Небольшое обновление статьи в 2017 году. Теперь можно установить CertBot и получить сертификат в ручном режиме.

1. Скачиванием дистрибутив

2. Установка прав на файл

chmod a+x certbot-auto

3. Запуск для получения сертификата в ручном режиме

4. Следуйте указаниям программы (подробнее смотрите в полной инструкции ниже с шага № 4).

Подробная инструкция (старый клиент — всё ещё работает)

Использовалась официальная инструкция. Пользователи Linux могут использовать текст ниже как пример генерации сертификата в ручном режиме.

1. Запустите ваш любимый дистрибутив Linux (мы использовали Debian 8).

либо 2. Установите Git и выполните команды ниже:

git clone https://github.com/letsencrypt/letsencrypt cd letsencrypt

3. Запустите установку и генерацию с помощью

Вам будет предложено ввести электронную почту для восстановления в будущем. Ключ -a manual позволит сгенерировать ключи в ручном режиме без их автоматической установки на веб-сервер.

4. Далее введите домены для которых вы хотите создать сертификаты

5. Подтвердите сохранение вашего адреса в логах Let’s Encrypt

6. Подтвердите владение доменом

В сентябре 2016 года произошли небольшие изменения в порядке получения сертификата. Спасибо toxi_roman за обновление.

Это один из ответственных моментов в режиме ручной регистрации. Обратите внимание: нас просят создать ответ на запрос, который возвращает Content-Type text/plain.

Такой ответ не пройдёт и подтверждение выдаст ошибку:

Нужно, чтобы было так:

privkey.pem — приватный ключ для сертификата Используется Apache для SSLCertificateKeyFile и nginx для ssl_certificate_key.

cert.pem (сертификат сервера) Используется Apache для SSLCertificateFile.

chain.pem (сертификат цепочки) Он же используется Apache для SSLCertificateChainFile.

fullchain.pem (соединение chain.pem и cert.pem) Он же используется nginx для ssl_certificate.

Запустите OpenSSL с помощью команды:

и начните конвертацию с помощью команды:

Вас попросят ввести пароль и подтвердить его.

7.2 Выходим из OpenSSL с помощью команды quit

8. Мы получили сертификат mydomain.pfx, который теперь можем использовать в Windows-окружении.

Важно знать, что сертификаты Let’s Encrypt валидны 90 дней. Рекомендуется обновлять их каждые 60 дней. На электронную почту, которую вы указали для генерации, будут приходить уведомления об истечении сертификата.

Буду рад услышать ваши замечания или пожелания к статье.

Let’s Encrypt и ACME клиенты для Windows

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

Подключение к серверу терминалов через шлюз

Запускаем «Подключение к удаленному рабочему столу» (приложение можно найти в Пуск или ввести команду mstsc). На вкладке Общие вводим локальное имя конечного сервера, к которому мы хотим подключиться:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

* в нашем случае мы будем подключаться к серверу terminal-1.dmosk.local.

Переходим на вкладку Дополнительно и кликаем по Параметры:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Переключаем параметр приложения в положение Использовать следующие параметры сервера шлюза удаленных рабочих столов и указываем внешнее имя сервера:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Если мы используем самозаверенный сертификат, приложение выдаст ошибку. Кликаем по Просмотреть сертификат:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Переходим на вкладку Состав и кликаем Копировать в файл:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Указываем путь для выгрузки файла:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Открываем папку, куда сохранили сертификат. Кликаем по сохраненному файлу правой кнопкой и выбираем Установить сертификат:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Выбираем Локальный компьютер — Далее:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

В качестве размещения сертификата выбираем Доверенные корневые центры сертификации:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

После снова пробуем подключиться к удаленному рабочему столу через шлюз:

Куда и зачем мне нужен был SSL сертификат

Начнём с того, что SSL (Secure Sockets Layer) сертификат защищает данные пользователей, которые передаются по сети. Для интеграции с одним из известных маркетплейсов мне нужно было использовать web-сервис 1С и на тестовом Windows Server, на котором был развёрнут тестовый сервер 1С, был поднят IIS (internet Information Services). Веб сервер Windows.

В требованиях обмена маркетплейса было указано что обмен должен идти через защищенный HTTPS протокол. И не через IP адрес, а через домен. Ниже расскажу последовательность моих действий:

Установку Windows Server и сервера 1С я тут рассматривать не буду, так как. Во-первых Windows Server установка мало чем отличается от установки обычной десктопной винды, а по 1С можно почитать эту статью. Во-вторых я хочу рассказать именно про то как установить SSL сертификат от Let’s Encrypt на Windows Server IIS. Начнём!

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

Чтобы перенаправить весь входящий HTTP трафик на HTTPS сайт, нужно установить модуль Microsoft URL Rewrite Module (https://www.iis.net/downloads/microsoft/url-rewrite), и убедиться, что в настройках сайта не включена опция обязательного использования SSL (Require SSL). Осталось настроить редирект в файле web.config:

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

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

Как установить SSL сертификат Let’s Encrypt на Windows Server (IIS)

Для того чтобы выпустить сертификат на Windows Server IIS на необходима программа LetsEncrypt-Win-Simple. Качаем её на официальном сайте www.win-acme.com

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Скачиваем и распаковываем архив в директорию на жёстком диске. Для выпуска сертификата нам нужно будет запустить из каталога файл wacs.exe. Но это чуть позже.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Если мы сейчас попытаемся выпустить сертификат, то получим предупреждение

Добавим веб-сайт в Диспетчере служб IIS

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Добавляем записи в Диспетчере DNS

Открываем Диспетчер DNS через команду выполнить WIN + R (или любым удобным для вас способом 😉 )

Выбираем сервер, правой кнопкой по каталогу сайтов и нажимаем Добавить веб-сайт. Указываем каталог для нового сайта. Дальше нам нужно создать псевдоним CNAME в зоне прямого просмотра (forward lookup zones).

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Так как домен у меня находится у хостинг провайдера, то я на всякий случай указал в Диспетчере DNS его NS сервера. В свою очередь у хостинг провайдера прописываем A запись с нашим выделенным IP адресом. Позже мы настроим правило для того чтобы входящее соединение перебрасывало на нужный сервер.

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Выпуск SSL сертификата Let’s Encrypt

И так. У нас есть 1С сервер с расширением веб-сервера, добавили DNS и CNAME записи, указали A запись. Теперь запускаем WACS.EXE и вводим букву N для инициирования выпуска сертификата. Далее выбираем на какой домен будем выпускать сертификат, даём пару соглашений (y) и вводим email адрес, куда нам будут приходить уведомления в случае каких-либо проблем (Enter email for notifications about problems and abuse).

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

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

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Установка сертификата на шлюз удаленных рабочих столов через let s encrypt

Настройка шлюза (роутера)

В моём случае это был Kerio Control. Я добавил правило для всех входящих по HTTPS (443 порт) и по HTTP (80 порт) переадресацию на нужный сервер IIS с SSL сертификатом

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

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

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *