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

Зачем и кому это нужно?

На этот вопрос проще всего ответить в случаях, когда перед IT-специалистами ставится задача массово организовать удаленный доступ к рабочим местам. Здесь каждый администратор решает для себя что ему или компании проще или выгоднее использовать. Вариантов подключения может быть очень много и использование стандартной роли Windows Server Remote Desktop Gateway — один из множества этих вариантов.

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

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

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

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

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

Устанавливаем необходимое ПО

Для выпуска сертификата нам потребуется скачать специальный клиент win-acme и распаковать его в любой папке. В этой статье, для демонстрации, разместим ПО в папке C:\ssl\.

Запустим Powershell от имени администратора, переместимся в директорию клиента и запустим файл wacs.exe.

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

На первом этапе мы указываем задачу, которую необходимо выполнить. В нашем случае — выпуск нового сертификата с полными настройками (M).

На следующем шаге мы должны указать, что хотим выпустить сертификат для привязки в IIS (1).

На следующем этапе — указываем интересующий нас сайт. В нашем случае он всего один (1). В результате Win Acme автоматически идентифицирует имя сайта для выпуска сертификата. Если мы согласны с результатом — нажмем Enter.

Теперь переходим к проверке прав на выпуск сертификатов для доменного имени. Существует несколько типов проверки. По умолчанию win-acme предлагает тип — http-01.

Приведу небольшой фрагмент из документации letsencrypt объясняющий механизм проверки.

Let’s Encrypt выдаёт ACME-клиенту токен, а ACME-клиент записывает этот токен в файл на web-сервере по пути http://<YOUR_DOMAIN>/.well-known/acme-challenge/<TOKEN>. В этом файле содержится сам токен, плюс отпечаток ключа вашего аккаунта. Как только ACME-клиент сообщит Let’s Encrypt, что файл готов, Let’s Encrypt будет пытаться получить этот файл по URL (возможно, несколько раз, с различных адресов). Если полученный ответ будет верным, проверка считается успешной, и сертификат для выбранного домена готов к использованию. Если проверка прошла неудачно, требуется повторить попытку с новым сертификатом.

Если необходимо более детально разобраться в алгоритмах, предлагаю почитать документацию letsencrypt.

В этой статье мы воспользуемся рекомендуемым способом, который временно разместит файлы валидации на сайте IIS. (4)

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

Укажем необходимость генерации ключевой пары RSA (2) и местоположение, где мы будем ее хранить. Дополнительно установим пароль доступа к ключевой паре.

После выполнения всех необходимых этапов начнется выпуск сертификата. На этом этапе происходит проверка доменного имени. В нашем случае не возникло дополнительных проблем. Как мы и хотели, в папке C:\ssl появилась ключевая пара в формате .pfx.

Последнее, что нам осталось — импортировать ключевую пару в папки Личное (для нужд службы шлюза удаленных рабочих столов) и Размещение веб-служб (для нужд IIS) хранилища сертификатов учетной записи компьютера.

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