Бесплатные сертификаты let’s encrypt
Компания Let’s Encrypt стала выдавать бесплатные SSL/TLS сертификаты с конца 2021 года, и если ранее в сертификате можно было указывать только одно имя (что практически неприменимо в случае публикации Exchange), то на сегодняшний день появилась поддержка мультидоменных сертификатов (SAN/UCC), а на 2021 анонсирована поддержка Wildcard SSL-сертификатов для прямых подменов.
Как вы помните, особенность сертификатов от Let’s Encrypt является их бесплатность, однако выдаются такие сертификаты всего на 90 дней (этим обеспечивается ограниченный срок действия скомпрометированного сертификата). Однако, со стороны пользователя это означает, что использование SSL сертификатов Let’s Encrypt имеет смысл только тогда, когда вы можете обеспечить автоматизацию их перевыпуска.
В этой статье я покажу ручной процесс получения установки сертификата, а в следующей статье поговорим об автоматизации.
На первый взгляд процесс создания и обновления сертификата несколько сложен. Однако, если понять суть процедуры, ее повторение не составит проблем. В отличие от типичного CA, Let’s Encrypt не предоставляет веб-интерфейс для управления запросами на получение сертификатов.
Валидация dns
Let’s Encrypt требует подтвердить владение каждым DNS именем, которое вы планируете включить в сертификат. Каждое DNS имя связывается с идентфикатором. Для сертификата SAN, нужно создать 2 или более идентификаторов и указать их при создании сертификата.
Подтвердить владение доменом можно несколькими способами:
Как правило, проще всего воспользоваться DNS валидацией и создать в зоне DNS специальную запись.
Создадим новый идентификатор:
Как сгенерировать запрос на сертификат (csr) для ms exchange 2021
Выпуск SSL-сертификата для Microsoft Exchange 2021 инициируется с сервера, для защиты которого нужен сертификат.
Для этого откройте Центр администрирования Microsoft Exchange и перейдите в меню Серверы — Сертификаты. Укажите сервер, на который хотите создать запрос на сертификат, и нажмите « »

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

На следующем шаге мастер предложит настроить групповой сертификат.

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

Следующий этап подразумевает выбор узлов, которые вы хотите защитить запрашиваемым сертификатом. Выберите необходимые узлы, зажав клавишу Ctrl и кликая мышкой по нужным пунктам. Для перехода на следующий шаг нажмите «Далее».
Если вы запрашиваете Wildcard-сертификат, этот шаг будет автоматически пропущен.

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

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

На последнем шаге система предложит указать, где сохранить файл с запросом на сертификат. Путь указывается в формате UNC. Например:
\SERVERNAMEс$UsersAdministratorDesktopcert-request.req
где SERVERNAME — сетевое имя вашего сервера, а cert-request.req — название сохраняемого файла.
После этого нажмите «Готово», и ваш запрос появится в списке сертификатов MS Exchange:

На этом процесс генерации запроса завершён. Осталось использовать его для заказа и выпуска SSL-сертификата.
Для этого найдите файл с запросом на сервере, откройте его с помощью Блокнота и скопируйте его содержимое:

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

После этого проверьте, что все контактные данные в запросе определены корректно.
На следующем этапе останется заполнить ваши контактные данные, выбрать способ подтверждения сертификата и внести оплату — как при заказе обычного SSL.
Назначаем новый сертификат серверу exchange 2021
После установки нового SSL сертификата, необходимо назначить его службам Exchange Server 2021. Для этого щелкните правой кнопкой мыши по новому сертификату и выберите “Assign Services to Certificate”.
Укажем наш новый сервер Exchange и нажмем Next.
Укажем службы, для которых необходимо назначить сертификат. В этом примере укажем сервисы IIS и SMTP.
После окончания мастера появится окно с предложением перезаписать текущий самоподписанный сертификат, согласимся с этим предложением, нажав Yes.
Подключение к let’s encrypt
После установки модуля ACMESharp нужно создать локальное хранилище для клиента ACMESharp. Данное хранилище используется клиентом для безопасного хранения запросов и ключей. Для создания хранилища, выполните команду:
Initialize-ACMEVault
Теперь, чтобы создать аккаунт в Let’s Encrypt, выполните команду:
Создаем сертификат let’s encrypt
После того, как вы подтвердите все идентификаторы, которые будут включены в ваш сертификат, вы можете сгенерировать запрос на его выпуск. При создании сертификата указываются все идентификаторы, которые нужно в него включить и его псевдоним.
Чтобы сгенерировать запрос на выпуск сертификата, выполните:
New-ACMECertificate mail-test -generate -AlternativeIdentifierRefs autod-test,test -Alias exch

Чтобы передать запрос на выпуск сертификата на сервера Let’s Encrypt, выполните:
Submit-ACMECertificate exch

После отправки запроса, убедитесь, что поле IssuerSerialNumber пустое. С помощью него вы можете определить, что результаты выполнения вашего запроса не получен. Прежде, чем экспортировать сертификат, нужно обновить данные в локальном хранилище:
Update-ACMECertificate exch
Чтобы экспортировать готовый сертификат в pfx файл, содержащий сам сертификат и закрытый ключ, выполнитеGet-ACMECertificate exch -ExportPkcs12 exch.pfx -CertificatePassword “password”

В том случае, если при выполнении команды Get-ACMECertificate для экспорта сертификата в pfx файл появляется ошибка: Issuer certificate hasn’t been resolved, убедитесь, что вы предварительно выполнили команду Update-ACMECertificate.
Кроме того, убедитесь что в цепочке промежуточных сертификатов на вашем компьютере есть сертификат Let’s Encrypt Authority X3.
Установка модуля acmesharp module
Модуль ACMESharp доступен в галерее скриптов PowerShell Gallery. Чтобы загрузить и установить модуль из галереи PowerShell, можно воспользоваться командлетом Install-Module, входящий в PowerShellGet. Модули PowerShellGet включены в Windows Management Framework 5 (установлен по умолчанию Windows 10 и Windows Server 2021).
