Установка Certbot в Ubuntu

На тесте установлю ACME клиент Certbot в Ubuntu 18.04, который поможет получить бесплатные SSL сертификаты Let’s Encrypt на 90 дней и автоматически обновлять их.
Для других версий Ubuntu клиент Certbot устанавливается аналогично.

Первым делом добавим репозиторий Certbot и выполним установку:

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache

В разных версиях Linux пакет может называться по разному, например:

apt-cache search certbot
sudo apt install python3-certbot-apache

Если вместо apache2 используется nginx, то вместо последней команды выполним:

sudo apt-get install python-certbot-nginx

Теперь запустим Certbot чтобы получить SSL сертификат:

sudo certbot --apache

Или:

sudo certbot --nginx

Чтобы вручную внести изменения в конфигурацию Apache2 и Certbot не изменял её, можно выполнить команду:

sudo certbot --apache certonly

Или:

sudo certbot --nginx certonly

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

После получения сертификата отобразилась информация:

IMPORTANT NOTES:
— Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2018-08-01. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the «certonly» option. To non-interactively renew *all* of
your certificates, run «certbot renew»
— Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.

Создался отдельный файл конфигурации сайта для HTTPS, а в том что был добавились строки выполняющие переадресацию с HTTP на HTTPS, общем аналогичные изменения как я описывал в этой статье — Установка и настройка Let’s Encrypt SSL.

Для автоматического обновления необходимо выполнить команду:

sudo certbot renew

Команду также можно добавить в Cron для автоматического обновления, смотрите мою статью — Использование и настройка CRON

Пример добавления в Cron (каждый понедельник в 3:15):

sudo crontab -e
15 3 * * 1 certbot renew >> /var/log/certbot-renew.log

Либо в /etc/crontab:

15 7 * * 1 root certbot renew >> /var/log/certbot-renew.log

Если сертификаты указаны также в Postfix и Dovecot, то эти службы нужно перезапускать чтобы загрузился новый сертификат, это можно сделать добавив к команде:

15 7 * * 1 root certbot renew --post-hook "service postfix restart; service dovecot restart" >> /var/log/certbot-renew.log

Для тестового обновления можно выполнить команду (конфигурация и сертификаты не будут затронуты):

sudo certbot renew --dry-run

Если срок сертификата еще не истекает и запустить обновление, то ничего не произойдет.
Для обновления сертификатов apache2 также должен работать на 80 порту.

Чтобы обновить версию самого Certbot, выполним команды:

sudo apt update
sudo apt install certbot

Если certbot был установлен например с apache2, а потом apache2 удалили и установили nginx, то в файлах /etc/letsencrypt/renewal/* нужно изменить «authenticator» и «installer».

Для удаления сертификата и всех связанных с ним данных используется команда (после ввода необходимо выбрать домен):

sudo certbot delete

Либо можно сразу указать какой удалить:

sudo certbot delete --cert-name ixnfo.com

Смотрите также мои статьи:

Оставьте комментарий

Добавить комментарий