Содержание

Сертификаты «Let’s Encrypt» на Linux

Просмотр сертификатов

certbot certificates

Создание сертификата

    $ apt update
    $ sudo apt install certbot
    $ certbot
 
    certbot certonly --webroot --agree-tos --email <почта администратора домена> --webroot-path <путь до каталога с файлами проверки> -d <домен 1> -d <домен 2> -d ... 
КлючОписание
certonlyзапрос нового сертификата
webrootпроверка будет выполняться на основе запроса к корню сайта
agree-tosдаем согласие на лицензионное соглашение
emailпочтовый адрес администратора домена
webroot-pathкаталог в системе Linux, который является корневым для сайта
dперечисление доменов, для которых запрашиваем сертификат
certbot --apache   -d powershellpro.ru -d www.powershellpro.ru
 
certbot certonly --webroot --agree-tos --email postmaster@dmosk.ru --webroot-path /usr/share/nginx/html/ -d dmosk.ru -d www.dmosk.ru
 
./certbot-auto certonly --manual --preferred-challenges=dns --email youremail@email.com --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d *.domain.com,domain.com

После успешного выполнения команды, сертификаты будут созданы в каталоге /etc/letsencrypt/archive/dmosk.ru, а также симлинки на них в каталоге /etc/letsencrypt/live/dmosk.ru. При настройке приложений, стоит указывать пути до симлинков, так как при обновлении файлы в первом каталоге будут меняться, во втором — нет. Публичный ключ будет с именем cert.pem, а приватный — privkey.pem.

Конвертация в PFX

 openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in fullchain.pem -certfile cert.pem

При подтверждении права на домен с TXT-записью:

  certbot certonly --manual --agree-tos --email postmaster@dmosk.ru --preferred-challenges=dns -d dmosk.ru -d www.dmosk.ru
  certbot certonly --webroot -w /var/www/30f.ru/html/ --email batman@30f.ru -d 30f.ru -d www.30f.ru

* где:

На запрос подтверждения отвечаем Y — система выдаст что-то на подобие:

Please deploy a DNS TXT record under the name _acme-challenge.dmosk.ru with the following value:

    W2SC9b88y2j2oUjhxVgS7Bphph9g5PqhkBq9KiWkLTm   

Автоматическое продление

Утилита certbot позволяет выполнить обновление сертификата в автоматическом режиме. В зависимости от операционной системы, инструменты различаются.

Linux Смотрим полный путь до скрипта certbot:

$ which certbot

Открываем на редактирование cron и добавляем следующее:

$ crontab -e

а) для Ubuntu / Debian / Rocky Linux:

0 0 * * 1,4 /usr/bin/certbot renew --noninteractive

б) для CentOS:

0 0 * * 1,4 /bin/certbot renew --noninteractive

Продление сертификата, если cerbot в docker

ssl_renew.sh
#!/bin/bash
 
COMPOSE="/usr/bin/docker compose --no-ansi"
DOCKER="/usr/bin/docker"
 
cd /opt/wordpress/
$COMPOSE run certbot renew --dry-run && $COMPOSE kill -s SIGHUP webserver
$DOCKER system prune -af

Acme.sh

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

acme.sh -f -r -d {your-domain-here}
acme.sh --force --renew --domain {your-domain-name-here}
acme.sh -f -r -d www.mydomain.ru
acme.sh -f -r -d www.mydomain.ru -d myserv1.mydomain.ru

Обновление сертификата

acme.sh -f -r -d www.mydomain.ru

Копируем из /.acme.sh/имядомена_ecc в /usr/local/x-ui/bin