Let's Encrypt для сайта на хостинге Nic.ru (RU center)

Памятка о выпуске сертификата Let's Encrypt и добавлении его в панель хостинга NIC.ru

Думал для начала высказать свое мнение об этой <censored> конторе. Но не буду.

Просто вопрос: почему вы еще там? Если можете переезжайте к нормальному хостингу, который поддерживает выпуск и, что важнее, автоматический перевыпуск сертификатов LE.

Если же, как и один из моих клиентов, не можете пока от них переехать, то вот инструкция как выпустить и добавить сертификат к своему домену у этого провайдера.

Выпуск сертификата

Для этого будем использовать certbot запускаемый в docker. Можно было бы установить certbot в системе, но мне просто не нравится держать ПО, которое я буду использовать единожды (или, в данном случае, очень редко).

Первым делом нужно создать директорию, в которой будем хранить выпускаемые сертификаты.

mkdir ~/projects/tools/certbot
cd ~/projects/tools/certbot
mkdir ./LE

Поскольку запускать certbot будем на локальной машине, выпускать сертификат будем в ручном режиме, а подтверждать с помощью файла-токена.

Запускаем:

docker run -it -v $(pwd)/LE/:/etc/letsencrypt/ certbot/certbot certonly \
      --authenticator manual \
      -m test@rame0.ru \
      -d test.rame0.ru
  • docker run ... certbot/certbot ... - запускает образа certbot
    • флаги -it запустят интерактивный режим
    • флаг -v позволяет смонтироваь локальную директорию $(pwd)/LE/ в запущенный образ по пути /etc/letsencrypt/live (в нее certbot сохраняет выданные сертификаты)
  • команда certonly выпускает сертификат, без установки его на машине
    • флаг --authenticator manual говорит certbot, что подтверждать владение мы будем в ручном режиме.
    • -m - ваша почта
    • -d домен (или список доменов) для которого нужно выпустить сертификат

В результате запускается скрипт выпуска, который попросит:

  1. Ваш email
  2. Согласиться с условиями использования
  3. Отказаться от получения e-mail рассылки (можете согласиться если хотите)
  4. Ввести домен для которого будет выпускаться сертификат

Выглядит это так:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf. You must agree in
order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n
Account registered.
Requesting a certificate for test.rame0.ru

После ответа на все вопросы, certbot ненадолго задумается, а потом выдаст вам токен и путь по которому нужно создать файл с этим токеном:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Create a file containing just this data:

NxEX2UnofAWrvjGvOsPR5EyByMfXJOcgSX3IWtWg2OE.O3YdVfuKyFJeeB-vPoQniJOtV7xybqotlUwY26eieBA

And make it available on your web server at this URL:

http://test.rame0.ru/.well-known/acme-challenge/NxEX2UnofAWrvjGvOsPR5EyByMfXJOcgSX3IWtWg2OE

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue  

Текст выше означает, что вам нужно будет на своем хостинге, в корневой папке сайта, создать директорию .well-known в ней создать директорию acme-challenge. Вэтой папке нужно создать файл NxEX2UnofAWrvjGvOsPR5EyByMfXJOcgSX3IWtWg2OE и в этот файл вставить токен NxEX2UnofAWrvjGvOsPR5EyByMfXJOcgSX3IWtWg2OE.O3YdVfuKyFJeeB-vPoQniJOtV7xybqotlUwY26eieBA

Когда этот файл создан и доступен (перейдите по ссылке и проверьте), нажмите Enter в консоли, чтобы продолжить. LE начнет проверку наличия токена верификации по указанному пути. Если всё Ок, вы увидите следующее сообщение:

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

NEXT STEPS:
- This certificate will not be renewed automatically. Autorenewal of --manual certificates requires the use of an authentication hook script (--manual-auth-hook) but one was not provided. To renew this certificate, repeat this same certbot command before the certificate's expiry date.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Теперь в директории ./LE/live/<domain> лежит созданный сертификат и ключ:

❯ sudo ls -l ./LE/live/test.rame0.ru/
total 4
lrwxrwxrwx 1 root root  38 мая  9 18:45 cert.pem
lrwxrwxrwx 1 root root  39 мая  9 18:45 chain.pem
lrwxrwxrwx 1 root root  43 мая  9 18:45 fullchain.pem
lrwxrwxrwx 1 root root  41 мая  9 18:45 privkey.pem
-rw-r--r-- 1 root root 692 мая  9 18:45 README

Как видим, владелец файлов root, сменим пользователя на нас:

sudo chown -R $USER:$USER ./LE/live/

Добавление сертификата в NIC.ru

Идем в панель хостинга и переходим там в раздел "SSL и антивирус".

Там нажимаем кнопку "Установить". Откроется окно для добавления сертификатов.

В раздел "Сертификат" загружаем файл fullchain.pem из папки LE2/live/text.rame0.ru/.

В раздел "Приватный ключ сертификата" загружаем файл privkey.pem.

Жмем "Установить".

Сертификат будет добавлен и появится окно:

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

PS сертификат Let's Encrypt действует только 90 дней. Поэтому, через, примерно, дней 85 вам нужно будет проделать процедуру выпуска и добавления сертификата снова.

Комментарии ()