Как установить БЕСПЛАТНЫЙ сертификат Let’s Encrypt на Exchange Server? После настройки внутреннего и внешнего DNS мы хотели бы установить сертификат на сервере Exchange. Что такое Let’s Encrypt и почему он бесплатный? Подробнее о настройке сертификата Let’s Encrypt в Exchange Server читайте в этой статье.
Содержание
Что такое Let’s Encrypt
Let’s Encrypt — это бесплатный способ защитить ваш веб-сервер с помощью HTTPS с SSL-сертификатом. Он обеспечивает безопасную зашифрованную передачу данных и соединение между сервером и клиентом. Let’s Encrypt не взимает плату за сертификаты. Let’s Encrypt — некоммерческая организация, и ее миссия — создать более безопасную и уважающую конфиденциальность сеть. Они делают это, способствуя широкому внедрению HTTPS. Сервисы бесплатны и просты в использовании, так что каждый может развернуть HTTPS.
Сертификат Exchange Server не является доверенным
При установке нового сервера Exchange клиентское соединение устанавливается небезопасно. Это по умолчанию. Мы войдем в Outlook Web Access (OWA), чтобы посмотреть, как это выглядит.
В Google Chrome отображается предупреждение:
OWA сервера Exchange работает, но небезопасно. Значок замка показывает предупреждение. Если мы нажмем замок в адресной строке, мы увидим, что соединение не защищено.
То же самое происходит со всеми другими браузерами. Например, Internet Explorer показывает красную адресную строку. При нажатии на сертификат на панели инструментов показывает, что сертификат является несоответствующим адресом. Соединение с сервером Exchange не защищено.
Мы узнали о Let’s Encrypt и увидели, что подключение к Exchange Server не является безопасным. В следующей части мы подготовим приложение для настройки сертификата. После этого мы запросим бесплатный сертификат Let’s Encrypt.
Подготовка с работой Let’s Encrypt Win-ACME
Существует список клиентов ACME, предлагаемых третьими лицами для использования. Мы собираемся использовать Windows ACME Simple (WACS). Простой клиент ACME для Windows — для использования с Let’s Encrypt. Он автоматически обновит ваши сертификаты, поэтому после его установки и настройки у вас будет постоянно защищенный веб-сервер.
Загрузите Win-ACME с GitHub или официального сайта .
На момент написания файла это win-acme.v2.1.22.1289.x64.pluggable.zip. Создайте папку Lets Encrypt в папке C:\Program Files. Извлеките файлы из архива .zip в папку C:\Program Files\Lets Encrypt.
Вы можете использовать Win-ACME из интерактивного меню или в автоматическом режиме (командная строка). С командной строкой вам не нужно прыгать по меню. Оба будут работать, и хорошо учиться обоим способам.
Давайте зашифруем закрытый ключ сертификата
Лучше всего экспортировать сертификат после его выпуска и загрузки из Let’s Encrypt. Это означает, что вы должны импортировать закрытый ключ сертификата, чтобы экспортировать сертификат. Есть два способа сделать это.
Автоматический импорт закрытого ключа сертификата
Настройте settings_default.json, прежде чем запрашивать сертификат у Let’s Encrypt. Это автоматически импортирует закрытый ключ сертификата в сертификат:
- Запустите проводник
- Перейдите по пути C:\Program Files\Lets Encrypt
- Откройте settings_default.json с помощью Блокнота.
- Установите для PrivateKeyExportable значение true
- Сохраните файл
Файл settings_default.json будет скопирован вместе с его настройками в settings.json после запуска Win-ACME. Если вы уже запускали Win-ACME, в папке вы увидите файл settings.json . Отредактируйте значение в settings.json .
Установите сертификат Let’s Encrypt с помощью интерактивного меню
Щелкните правой кнопкой мыши приложение wacs . Нажмите « Запуск от имени администратора» , чтобы запустить приложение.
Появится окно клиента Win-ACME. Введите M , чтобы создать сертификат продления (полный вариант), и нажмите Enter .
A simple Windows ACMEv2 client (WACS)
Software version 2.1.22.1289 (release, pluggable, standalone, 64-bit)
Connecting to https://acme-v02.api.letsencrypt.org/...
Connection OK!
Scheduled task not configured yet
Please report issues at https://github.com/win-acme/win-acme
N: Create certificate (default settings)
M: Create certificate (full options)
R: Run renewals (0 currently due)
A: Manage renewals (0 total)
O: More options...
Q: Quit
Please choose from the menu: M
Введите 2 для ручного ввода и нажмите Enter .
Running in mode: Interactive, Advanced
Please specify how the list of domain names that will be included in the
certificate should be determined. If you choose for one of the "all bindings"
options, the list will automatically be updated for future renewals to
reflect the bindings at that time.
1: Read bindings from IIS
2: Manual input
3: CSR created by another program
C: Abort
How shall we determine the domain(s) to include in the certificate?: 2
Введите список имен хостов через запятую. Посмотрите на свои имена хостов Exchange и заполните их. Правильно ли вы настроили имена хостов Exchange Server? Внутренних имен быть не должно, например MBX1. Ознакомьтесь со статьей Проектирование и планирование пространства имен Exchange . Я рекомендую использовать одно и то же пространство имен для внутреннего и внешнего DNS.
В моем примере я буду использовать *.alukashin.ru После этого нажмите Enter .
Помимо перечислений имен в SAN сертификата, мы можем указать и wildcard , через wildcard мы покроем все имена 3 уровня , запись будет выглядить типа *.alukashin.ru . Получается что
Для установки SAN сертификата для двух имен мы перечисляем имена.
Для того чтобы произвести установку wildcard ssl сертификата в exchange 2016 мы ставим со *.domain.com
В данном примере мы выберем SAN серитфикат, в последующем мы установим сетификат на exchange 2016.
Description: A host name to get a certificate for. This may be a
comma-separated list.
Host: mail.alukashin.ru,autodiscover.alukashin.ru или *.alukashin.ru
Мы не будем ничего вводить для предлагаемого понятного имени. Нажмите Enter , чтобы продолжить.
Source generated using plugin Manual: mail.alukashin.ru and 1 alternatives
Friendly name '[Manual] mail.alukashin.ru'. <Enter> to accept or type desired name: <Enter>
Проверку выполним по dns txt записи под номером 6
The ACME server will need to verify that you are the owner of the domain
names that you are requesting the certificate for. This happens both during
initial setup *and* for every future renewal. There are two main methods of
doing so: answering specific http requests (http-01) or create specific dns
records (dns-01). For wildcard domains the latter is the only option. Various
additional plugins are available from https://github.com/win-acme/win-acme/.
1: [http-01] Save verification files on (network) path
2: [http-01] Serve verification files from memory
3: [http-01] Upload verification files via FTP(S)
4: [http-01] Upload verification files via SSH-FTP
5: [http-01] Upload verification files via WebDav
6: [dns-01] Create verification records manually (auto-renew not possible)
7: [dns-01] Create verification records with acme-dns (https://github.com/joohoi/acme-dns)
8: [dns-01] Create verification records with your own script
9: [tls-alpn-01] Answer TLS verification request from win-acme
C: Abort
How would you like prove ownership for the domain(s)?: 6
Введите 2 для ключа RSA и нажмите Enter .
After ownership of the domain(s) has been proven, we will create a
Certificate Signing Request (CSR) to obtain the actual certificate. The CSR
determines properties of the certificate like which (type of) key to use. If
you are not sure what to pick here, RSA is the safe default.
1: Elliptic Curve key
2: RSA key
C: Abort
Выберите вариант 3 , чтобы сохранить сертификат в хранилище сертификатов Windows, и нажмите Enter .
When we have the certificate, you can store in one or more ways to make it
accessible to your applications. The Windows Certificate Store is the default
location for IIS (unless you are managing a cluster of them).
1: IIS Central Certificate Store (.pfx per host)
2: PEM encoded files (Apache, nginx, etc.)
3: PFX archive
4: Windows Certificate Store
5: No (additional) store steps
How would you like to store the certificate?: 3
Создадим в корне диска C:\ папку PFX
Укажем данный путь
How would you like to store the certificate?: 3
Description: Path to write the .pfx file to.
File path: C:\PFX
Нам предлагают защитить наш серфикат паролем, я откажусь , нажатием 1
Description: Password to set for .pfx files exported to the folder.
1: None
2: Type/paste in console
3: Search in vault
Choose from the menu: 1
Выберите 5
1: IIS Central Certificate Store (.pfx per host)
2: PEM encoded files (Apache, nginx, etc.)
3: PFX archive
4: Windows Certificate Store
5: No (additional) store steps
Would you like to store it in another way too?: 5
Выберите 3
Installation plugin IIS not available: This step cannot be used in combination with the specified store(s)
With the certificate saved to the store(s) of your choice, you may choose one
or more steps to update your applications, e.g. to configure the new
thumbprint, or to update bindings.
1: Create or update bindings in IIS
2: Start external script or program
3: No (additional) installation steps
Which installation step should run first?: 3
Пишем Y , принимаем лицензионное соглашение
Which installation step should run first?: 3
Terms of service: C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\LE-SA-v1.2-November-15-2017-w-v1.3-notice.pdf
Open in default application? (y/n*)
Do you agree with the terms? (y*/n) - yes
Введите свой адрес электронной почты и нажмите Enter .
Enter email(s) for notifications about problems and abuse (comma-separated): administrator@alukashin.ru
Вывод покажет, что нам нужно подключится ко внешнему DNS и вручную создать TXT запись
[*.alukashin.ru] Authorizing...
[*.alukashin.ru] Authorizing using dns-01 validation (Manual)
Domain: alukashin.ru
Record: _acme-challenge.alukashin.ru
Type: TXT
Content: "_UGiCVfFAkQDLjqPFTYJm1Xi0n9AS9ro8YShjKPQzAI"
Note: Some DNS managers add quotes automatically. A single set
is needed.
Please press <Enter> after you've created and verified the record
После публикации записи нам нужно подождать пока dns отреплицируется. Для проверки можно использовать инструмент от Google — Google DIG.
После того как запись стало видно можно нажать Enter в поле окна WACS
Если валидация прошла успешно , он потребует удалить запись из внешнего dns , через google dig посмотрите прошла ли репликация, позже нажмите enter , как запись пропадет , можете нажать Enter.
[*.alukashin.ru] Authorizing...
[*.alukashin.ru] Authorizing using dns-01 validation (Manual)
Domain: alukashin.ru
Record: _acme-challenge.alukashin.ru
Type: TXT
Content: "_UGiCVfFAkQDLjqPFTYJm1Xi0n9AS9ro8YShjKPQzAI"
Note: Some DNS managers add quotes automatically. A single set
is needed.
Please press <Enter> after you've created and verified the record
[*.alukashin.ru] Preliminary validation succeeded
[*.alukashin.ru] Preliminary validation succeeded
[*.alukashin.ru] Authorization result: valid
Domain: alukashin.ru
Record: _acme-challenge.alukashin.ru
Type: TXT
Content: "_UGiCVfFAkQDLjqPFTYJm1Xi0n9AS9ro8YShjKPQzAI"
Please press <Enter> after you've deleted the record
Сертификат будет ждать вас в папке.
В следующей статье мы разберем как установить сертификат на Exchange 2016
5 комментариев
А вписать какое количество имен хостов можно чисто теоретически, семь имен он потянет?
и еще у меня выдает такое,
Domain: autodiscover.moi-domen.ru
Record: _acme-challenge.autodiscover.moi-domen.ru
Вместо
Domain: moi-domen.ru
Record: _acme-challenge.moi-domen.ru
А домена третьего уровня у меня нету.
[…] Чтобы совершить прявязку нужно выписать сертификат я в свою очередь выпускал сертификат через win acme у меня есть статья на эту тему […]
[…] Выпишим серфитикат на имя oss.domain.ru через win-acme […]
Можете подробнее подсказать, где нужно создать текстовый файл, который генерит программа?
Создаю на сервере домена в DNS прямая зона-domain- _domainkey текстовый параметр с данными, генерируемыми программой.
Потом нажимаю Enter и получаю ошибку в программе:
Incorrect TXT records found.Preliminary validation failed on all nameserver…
И всё, ошибка получения сертификата.
Или может быть я вообще делаю неправильно?