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

Certbot – клиент написанный на Python, который позволяет автоматизировать как получение бесплатных сертификатов от Let’s Encrypt, так и настройку веб-серверов для создания защищённого https соединения с использованием этих сертификатов.

В качестве примера мы рассмотрим установку Cerbot на CentOS, узнаем как получить с помощью него бесплатный сертификат и выполнить автоматическую настройку nginx / apache.

Установка 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

Приступаем к непосредственному получению бесплатного сертификата и настройке https. Если вы используете nginx, выполните:

# certbot --nginx

Если у вас установлен apache:

# certbot --apache

Certbot попросит указать адрес электронной почты, которая будет использована срочного продления и уведомлений безопасности. Указываем свою почту и нажимаем Enter:

Далее необходимо принять пользовательское соглашение, вводим A и нажимаем Enter:

Нам предложат опубликовать наш адрес электронной почты после успешного получения сертификата. Отказываемся, введя N и Enter:

Certbot проверит конфигурационные файлы nginx / apache на наличие доменных имен. Если они будут найдены, то он выведет их список и предложит указать те, для которых требуется получить сертификаты и настроить веб-сервер (в консоли вводятся номера позиций, возможно указание нескольких через пробел). Если же у вас нет настроенных доменов, то имя потребуется указать вручную:

После этого дожидаемся окончания работы клиента:

Для успешной работы Certbot необходимо, чтобы у вас были открыты порты 80 и 443!

Заходим в браузер и вводим наш домен. Справа от него будет указан значок замка, который говорит о защищенном соединении:

Так как сертификаты Let’s Encrypt выдаются на три месяца, то настроим их автоматическое обновление. Для этого откроем любым текстовым редактором крон:

# nano /etc/crontab

И укажем периодическое задание на обновление всех сертификатов с помощью certbot:

0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q

Установка Certbot на CentOS 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

Приступаем к непосредственному получению бесплатного сертификата и настройке https. Если вы используете nginx, выполните:

# certbot --nginx

Если у вас установлен apache:

# certbot --apache

Certbot попросит указать адрес электронной почты, которая будет использована срочного продления и уведомлений безопасности. Указываем свою почту и нажимаем Enter:

Далее необходимо принять пользовательское соглашение, вводим A и нажимаем Enter:

Нам предложат опубликовать наш адрес электронной почты после успешного получения сертификата. Отказываемся, введя N и Enter:

Certbot проверит конфигурационные файлы nginx / apache на наличие доменных имен. Если они будут найдены, то он выведет их список и предложит указать те, для которых требуется получить сертификаты и настроить веб-сервер (в консоли вводятся номера позиций, возможно указание нескольких через пробел). Если же у вас нет настроенных доменов, то имя потребуется указать вручную:

После этого дожидаемся окончания работы клиента:

Для успешной работы Certbot необходимо, чтобы у вас были открыты порты 80 и 443!

Заходим в браузер и вводим наш домен. Справа от него будет указан значок замка, который говорит о защищенном соединении:

Так как сертификаты Let’s Encrypt выдаются на три месяца, то настроим их автоматическое обновление. Для этого откроем любым текстовым редактором крон:

# nano /etc/crontab

И укажем периодическое задание на обновление всех сертификатов с помощью certbot:

0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q

10 комментариев к “Установка Certbot на CentOS”

  1. спасибо, оказалось полезно.
    но как добавить НОВЫЙ ДОМЕН?
    и вопрос по принудительному запуску renew если вдруг автоматически не сработает.
    а то со старым

    у меня были проблемы, как только не пробовал

    #* * * * * root /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew2.log
    #30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
    #35 2 * * 1 /bin/systemctl reload nginx
    #35 2 * * 1 /bin/systemctl restart nginx.service

    обновлять обновляло а вот нжингс не перезапускался.

    Ответить
    • Для добавления нового домена необходимо повторно запустить certbot и выбрать/указать новый домен.
      В кроне прописывается 0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q (с вашей версией python). Я где-то сталкивался, что отсутствовал модуль random и его необходимо было установить. Попробуйте запустить python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q в консоли и посмотрите вывод.

      Ответить
    • Да, возможно у Вас не установлен редактор nano, а vim есть по умолчанию.
      Спасибо за Ваш отзыв!

      Ответить

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