Lets Encrypt Wildcard SSL вручную

Wildcard сертификат выдаётся на поддомены (*.tyapk.ru), например example.tyapk.ru, forum.tyapk.ru, www.tyapk.ru и все остальные, но не включает сам домен tyapk.ru. Очевидное преимущество в том, что не нужно выпускать отдельные сертификаты для отдельных поддоменов.

Рассматривается ручной выпуск SSL сертификата от Lets Encrypt, который выдаётся на 3 месяца. Соответственно продлением требуется заниматься не реже 4 раз в год. Прежде всего требуется пакет openssl

yum update -y
yum install -y openssl 

Для установки Wildcard-сертификата используется утилита ACME.sh

[root@a home]# curl https://get.acme.sh | sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   754    0   754    0     0   1979      0 --:--:-- --:--:-- --:--:--  1984
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  191k  100  191k    0     0   254k      0 --:--:-- --:--:-- --:--:--  257k
[Ср янв 22 07:25:34 UTC 2020] Installing from online archive.
[Ср янв 22 07:25:34 UTC 2020] Downloading https://github.com/Neilpang/acme.sh/archive/master.tar.gz
[Ср янв 22 07:25:36 UTC 2020] Extracting master.tar.gz
[Ср янв 22 07:25:36 UTC 2020] It is recommended to install socat first.
[Ср янв 22 07:25:36 UTC 2020] We use socat for standalone server if you use standalone mode.
[Ср янв 22 07:25:36 UTC 2020] If you dont use standalone mode, just ignore this warning.
[Ср янв 22 07:25:36 UTC 2020] Installing to /root/.acme.sh
[Ср янв 22 07:25:36 UTC 2020] Installed to /root/.acme.sh/acme.sh
[Ср янв 22 07:25:36 UTC 2020] Installing alias to '/root/.bashrc'
[Ср янв 22 07:25:36 UTC 2020] OK, Close and reopen your terminal to start using acme.sh
[Ср янв 22 07:25:36 UTC 2020] Installing alias to '/root/.cshrc'
[Ср янв 22 07:25:36 UTC 2020] Installing alias to '/root/.tcshrc'
[Ср янв 22 07:25:36 UTC 2020] Installing cron job
no crontab for root
no crontab for root
[Ср янв 22 07:25:36 UTC 2020] Good, bash is found, so change the shebang to use bash as preferred.
[Ср янв 22 07:25:37 UTC 2020] OK
[Ср янв 22 07:25:37 UTC 2020] Install success!

Перейдите в указанную установщиков директорию .acme.sh и выполните следующую команду ./acme.sh --issue -d platform.vepp.ml -d '*.platform.vepp.ml' --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please на выпуск 2 сертификатов:

  • основного домена platform.vepp.ml
  • поддоменов основного домена *.platform.vepp.ml
cd /root/.acme.sh
[root@a .acme.sh]# ./acme.sh --issue -d platform.vepp.ml -d '*.platform.vepp.ml' --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please
[Ср янв 22 07:37:50 UTC 2020] Single domain='*.platform.vepp.ml'
[Ср янв 22 07:37:50 UTC 2020] Getting domain auth token for each domain
[Ср янв 22 07:37:53 UTC 2020] Getting webroot for domain='*.platform.vepp.ml'
[Ср янв 22 07:37:53 UTC 2020] Add the following TXT record:
[Ср янв 22 07:37:53 UTC 2020] Domain: '_acme-challenge.platform.vepp.ml'
[Ср янв 22 07:37:53 UTC 2020] TXT value: 'sUktgV6JfX3XN32S-puWfmjMPoOEpCOdDPhuAKp7mOA'
[Ср янв 22 07:37:53 UTC 2020] Please be aware that you prepend _acme-challenge. before your domain
[Ср янв 22 07:37:53 UTC 2020] so the resulting subdomain will be: _acme-challenge.platform.vepp.ml
[Ср янв 22 07:37:53 UTC 2020] Please add the TXT records to the domains, and re-run with --renew.
[Ср янв 22 07:37:53 UTC 2020] Please add '--debug' or '--log' to check more details.
[Ср янв 22 07:37:53 UTC 2020] See: https://github.com/Neilpang/acme.sh/wiki/How-to-debug-acme.sh

Далее требуется прописать предложенную TXT запись _acme-challenge.platform.vepp.ml со значением sUktgV6JfX3XN32S-puWfmjMPoOEpCOdDPhuAKp7mOA у регистратора для подтверждения прав.

screenshot-82.146.47.1-2020.01.png

После необходимо выполнить команду перевыпуска, заменив в оригинальной команде выпуска ключ --issue на --renew.

[root@a .acme.sh]# ./acme.sh -d platform.vepp.ml -d '*.platform.vepp.ml' --renew  --yes-I-know-dns-manual-mode-enough-go-ahead-please
[Ср янв 22 07:42:58 UTC 2020] Renew: '*.platform.vepp.ml'
[Ср янв 22 07:42:59 UTC 2020] Single domain='*.platform.vepp.ml'
[Ср янв 22 07:42:59 UTC 2020] Getting domain auth token for each domain
[Ср янв 22 07:42:59 UTC 2020] Verifying: *.platform.vepp.ml
[Ср янв 22 07:43:04 UTC 2020] Success
[Ср янв 22 07:43:04 UTC 2020] Verify finished, start to sign.
[Ср янв 22 07:43:04 UTC 2020] Lets finalize the order, Le_OrderFinalize: https://acme-v02.api.letsencrypt.org/acme/finalize/7XXXXX06/2XXXXXXX52
[Ср янв 22 07:43:06 UTC 2020] Download cert, Le_LinkCert: https://acme-v02.api.letsencrypt.org/acme/cert/04asdfasdfasdfsdfsdfasdfd4ed5e6bd52
[Ср янв 22 07:43:07 UTC 2020] Cert success.
-----BEGIN CERTIFICATE-----
MIIFWzCCBEOgAwIBAgISBJc/EG3l454Jqa+XLU7V5r1SMA0GCSqGSIb3DQEBCwUA
...
bJo8OulrAbClwClw4n8K9M3OdHk19r58t3+8OGUwPQ==
-----END CERTIFICATE-----
[Ср янв 22 07:43:07 UTC 2020] Your cert is in  /root/.acme.sh/*.platform.vepp.ml/*.platform.vepp.ml.cer 
[Ср янв 22 07:43:07 UTC 2020] Your cert key is in  /root/.acme.sh/*.platform.vepp.ml/*.platform.vepp.ml.key 
[Ср янв 22 07:43:07 UTC 2020] The intermediate CA cert is in  /root/.acme.sh/*.platform.vepp.ml/ca.cer 
[Ср янв 22 07:43:07 UTC 2020] And the full chain certs is there:  /root/.acme.sh/*.platform.vepp.ml/fullchain.cer 

По мотивам Как получить бесплатный Wildcard SSL-сертификат

Похожие записи

phpDocumentor на Ubuntu

Запись об установке и использовании phpDocumentor — системе документирования исходных текстов на PHP.

Linux. Команда sed

Команда sed - это потоковый редактор текста. Вставляет/изменяет/добавляет текст не открывая файл визуально. Обычно используется в скриптах.