Let’s Encrypt — это бесплатный, автоматизированный и открытый Центр Сертификации. Это значит, что вы можете для своего сайта установить и автоматизировать обновление SSL сертификата, чтобы ваш сайт работал по HTTPS протоколу. Наш сайт тоже работает с сертификатом Let’s Encrypt.
Let’s Encrypt позволяет автоматизировать выпуск сертификатов. Однако, если вы ходите выпустить WildCard сертификат, то автоматически этого сделать может не получиться. Дело в том, что подтверждение владение ресурсом для WildСard сертификатов должно осуществляться по DNS, и не все DNS серверы это поддерживают.
Утилиту win-acme берём здесь:
https://github.com/PKISharp/win-acme/releases

Открываем под администратором PowerShell и запускаем.
wacs.exe --store pemfiles --pemfilespath C:\distrib\ACME\CertВ папке C:\distrib\ACME\Cert будут сохраняться наши ключи и сертификаты.

Утилита запускается.

Дальше читаем, думаем, выбираем нужные пункты меню. Я подробно объяснять не буду почему я выбрал тот или иной вариант, просто укажу что нажал.
Нас интересует пункт M: Create certificate (full options).
M
Выбираем 2: Manual input.
2
Просят указать домен. Сначала указываем WildCard, затем через запятую обычный домен.
*.internet-lab.ru, internet-lab.ru
Можно указать название, это не обязательно, нажимаем Enter.

Выбираем 4: Single certificate.
4
Будем DNS править вручную, выбираем 6: [dns] Create verification records manually (auto-renew not possible).

Выбираем 2: RSA key.

Выбираем 2: PEM encoded files (Apache, nginx, etc.).

Предлагают указать путь для сохранения, но мы его уже указали аргументом, так что нажимаем Enter.

Пароль не будем ставить, выбираем 1: None.
1
Не будем сохранять в другое место, поэтому выбираем 5: No (additional) store steps.

Выбираем 3: No (additional) installation steps.

И вот теперь пришла пора подтвердить владение доменом. Нас просят создать в DNS текстовую TXT запись _acme-challenge.internet-lab.ru, содержимое: 3iilBzpHeh0Tv1iAa9668Q0nj-VBpRMQxPuytyc5oqY.
У меня DNS сервер крутится в Cloudflare.

Добавляю соответствующую запись в DNS. В скрипте нажимаю Enter.

Скрипт не смог найти на нескольких DNS резолверах нужную запись, это нормально, подождём. Через пару минут выбираем пункт 1: Retry check.
1
Пока ничего, ждём... хотя, давайте в DNS уменьшим TTL.

Делаем TTL 1 минута.

Упс, я опечатался в имени поддомена, добавив лишний знак подчёркивания. Исправляю.
Продолжаем в скрипте делать проверки.

С очередной попытки скрипт нашёл нашу запись в DNS и просит её удалить. Повременим с удалением, нажимаем Enter.

Нас просят снова создать в DNS текстовую TXT запись _acme-challenge.internet-lab.ru, с другим содержимым: zYwDMk_DmTnMF22oRjpA9dM6AdKRK016PxyQoH6A-_Q. Это потому что мы запросили и Wildcard и, через запятую, обычный домен. Правильно что запросили, иначе сертификат будет работать на всех поддоменах, а на основном домене работать не будет.
Редактируем _acme-challenge.internet-lab.ru или добавляем заново, если удалили.

Продолжаем в скрипте делать проверки.

Пока верная запись не найдена.

В очередной раз запись находится. Нас просят удалить её.

Удаляем. Затем в скрипте наживаем Enter.

Сертификат выпускается и скачивается. Выход.
QНаходим сертификат его в директории C:\distrib\ACME\Cert.

- _.internet-lab.ru-crt.pem — сертификат
- _.internet-lab.ru-key.pem — ключ
- _.internet-lab.ru-chain.pem — сертификат с цепочкой
- _.internet-lab.ru-chain-only.pem — цепочка
Проверим.

Действительный сертификат.

Выпущен на три месяца.

Работает для основного домена и всех поддоменом.
Задача выполнена.
