Certbot - это удобный инструмент на Python, который поможет вам легко получить бесплатные SSL-сертификаты от Let's Encrypt для вашего веб-сайта. Взглянем на процесс установки Certbot на CentOS и автоматической настройки веб-сервера nginx/apache для защищенного https-соединения.
- Установка Certbot на CentOS 7 с nginx / apache
- Установка Certbot на CentOS 8 и AlmaLinux 8 с nginx / apache
- Получение сертиката SSL с помощью Certbot
- Включение автоматического обновления сертифката
Установка Certbot на CentOS 7 с nginx / apache
Для установки certbot нам потребуется установить репозиторий epel-release (все команды выполняются с правами root):
yum install epel-release
Далее устанавливаем сам клиент и модуль работы с сервером (пример для nginx):
yum install certbot python2-certbot-nginx
Если же вы используете apache, то выполните установку certbot с соответствующим модулем:
yum install certbot python2-certbot-apache
Установка Certbot на CentOS 8 и AlmaLinux 8 с nginx / apache
Для установки certbot нам потребуется установить репозиторий epel-release (все команды выполняются с правами root):
dnf install epel-release
Далее устанавливаем сам клиент и модуль работы с сервером (пример для nginx):
dnf install certbot python3-certbot-nginx
Если же вы используете apache, то выполните установку certbot с соответствующим модулем:
dnf install certbot python3-certbot-apache
Получение сертиката SSL с помощью Certbot
Приступаем к непосредственному получению бесплатного сертификата и настройке https. Если вы используете nginx, выполните:
certbot --nginx
Если у вас установлен apache:
certbot --apache
Certbot попросит указать адрес электронной почты, которая будет использована срочного продления и уведомлений безопасности. Указываем свою почту и нажимаем Enter:
Далее необходимо принять пользовательское соглашение, вводим Y и нажимаем Enter:
Нам предложат опубликовать наш адрес электронной почты после успешного получения сертификата. Отказываемся, введя N и Enter:
Certbot проверит конфигурационные файлы nginx / apache на наличие доменных имен. Если они будут найдены, то он выведет их список и предложит указать те, для которых требуется получить сертификаты и настроить веб-сервер (в консоли вводятся номера позиций, возможно указание нескольких через пробел). Если же у вас нет настроенных доменов, то имя потребуется указать вручную:
После этого дожидаемся окончания работы клиента:
Для успешной работы Certbot необходимо, чтобы у вас были открыты порты 80 и 443!
Включение автоматического обновления сертифката
Так как сертификаты Let’s Encrypt выдаются на три месяца, то настроим их автоматическое обновление. Для этого откроем любым текстовым редактором крон:
nano /etc/crontab
И укажем периодическое задание на обновление всех сертификатов с помощью certbot:
CentOS 7
0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q
CentOS 8 и AlmaLinux 8
0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q