Перейти к основному содержанию

Let's Encrypt — вручную выпускаем сертификат WildСard через win-acme

let's encrypt

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

acme

Открываем под администратором PowerShell и запускаем.

wacs.exe --store pemfiles --pemfilespath C:\distrib\ACME\Cert

В папке C:\distrib\ACME\Cert будут сохраняться наши ключи и сертификаты.

ssl

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

ssl

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

Нас интересует пункт M: Create certificate (full options).

M
ssl

Выбираем 2: Manual input.

2
ssl

Просят указать домен. Сначала указываем WildCard, затем через запятую обычный домен.

*.internet-lab.ru, internet-lab.ru
ssl

Можно указать название, это не обязательно, нажимаем Enter.

ssl

Выбираем 4: Single certificate.

4
ssl

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

ssl

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

ssl

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

ssl

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

ssl

Пароль не будем ставить, выбираем 1: None.

1
ssl

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

ssl

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

ssl

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

У меня DNS сервер крутится в Cloudflare.

Перенос DNS в CloudFlare

ssl

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

ssl

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

1
ssl

Пока ничего, ждём... хотя, давайте в DNS уменьшим TTL.

ssl

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

ssl

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

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

ssl

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

ssl

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

Редактируем _acme-challenge.internet-lab.ru или добавляем заново, если удалили.

ssl

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

SSL

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

SSL

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

SSL

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

SSL

Сертификат выпускается и скачивается. Выход.

Q

Находим сертификат его в директории C:\distrib\ACME\Cert.

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

Проверим.

SSL

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

SSL

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

SSL

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

Задача выполнена.

Теги

 

Похожие материалы

Настройка SSL сертификатов CA на хосте ESXi, подключенном к vCenter 6.7

Привет, сегодня решим проблему с установкой корпоративного сертификата на ESXi host. Проблема в том, что хост управляется через vCenter.