Skip to main content

Сертификат от LetsEncrypt

Это можно использовать на практике, хотя лучше все-таки купить.

Устанавливаем certbot 

sudo apt install certbot

Запрашиваем сертификаты на основной домен и домены третьего уровня 

sudo certbot certonly --manual --agree-tos --email bobrovsa@yandex.ru --server https://acme-v02.api.letsencrypt.org/directory --preferred-challenges=dns -d bobrobotirk.ru -d *.bobrobotirk.ru

Там будет несколько шагов и затем предложат создать первую DNS запись 

Please deploy a DNS TXT record under the name:

_acme-challenge.bobrobotirk.ru.

with the following value:

NIr-7aDKMLQcXD5X5pTUI8QHqfrsyhELT-O3RRowj6U

Через dns manager создаем запись и ждем, пока данный запрос не вернет созданную запись 

nslookup -type=txt _acme-challenge.bobrobotirk.ru 8.8.8.8
╤хЁтхЁ:  dns.google
Address:  8.8.8.8

Не заслуживающий доверия ответ:
_acme-challenge.bobrobotirk.ru  text =

        "NIr-7aDKMLQcXD5X5pTUI8QHqfrsyhELT-O3RRowj6U"

Затем в консоли нажимаем Enter, будет предложено создать еще одну запись, создаем ее, аналогично ждем, 

nslookup -type=txt _acme-challenge.bobrobotirk.ru 8.8.8.8
╤хЁтхЁ:  dns.google
Address:  8.8.8.8

Не заслуживающий доверия ответ:
_acme-challenge.bobrobotirk.ru  text =

        "4s3TX4mO9wCzwBqEYDXbG2JumjktPKt3MQKNmUwRMe8"
_acme-challenge.bobrobotirk.ru  text =

        "NIr-7aDKMLQcXD5X5pTUI8QHqfrsyhELT-O3RRowj6U"

Затем отобразится факт успешного создания сертификатов и место расположения. 

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/bobrobotirk.ru/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/bobrobotirk.ru/privkey.pem
This certificate expires on 2025-07-03.
These files will be updated when the certificate renews.

Дальше возник вопрос преобразования файлов в .key и .crt Несколько ресурсов просмотрел, но были написаны разные команды, это напрягло. И только на stackoverflow увидел нормальное описание. Идея в том, что расширение .pem не говорит о формате файла сертификата (смешно, но факт). Формат может быть бинарный и текстовый. Для проверки нужно просто просмотреть файл 

sudo cat /etc/letsencrypt/live/bobrobotirk.ru/fullchain.pem

Если файл будет начинаться с -----BEGIN CERTIFICATE-----, то это означает текстовый формат. Иначе 99% DER формат и и нужно соответствующее преобразование. Но бывают и другие форматы. Список команд для преобразования.

Для nginx нужен текстовый формат, поэтому в моем случае нужно простое копирование сертификата с изменением расширения) 

cp cert.pem cert.crt
cp key.pem  key.key