Шаг 1: Установка Certbot
Certbot — это инструмент, который автоматически управляет SSL/TLS сертификатами от Let's Encrypt. Установка Certbot и его плагинов зависит от веб-сервера, который вы используете (Apache или Nginx).
Обновите список пакетов:
sudo apt update
Команда обновляет список пакетов, чтобы убедиться, что вы установите последнюю версию Certbot.
Установите Certbot и плагин для вашего веб-сервера:
Если у вас Apache:
sudo apt install certbot python3-certbot-apache
Этот пакет установит Certbot и модуль, который автоматически настраивает SSL для Apache.
Если у вас Nginx:
sudo apt install certbot python3-certbot-nginx
Этот пакет установит Certbot и модуль для автоматической настройки SSL для Nginx.
Шаг 2: Выпуск SSL сертификата
Теперь, когда Certbot установлен, вы можете запросить бесплатный сертификат от Let's Encrypt и автоматически настроить его на вашем веб-сервере.
- Для Apache:
sudo certbot --apache
Эта команда выполнит запрос сертификата и автоматически настроит Apache для использования SSL.
Для Nginx:
sudo certbot --nginx
Эта команда выполнит запрос сертификата и автоматически настроит Nginx для использования SSL.
Следуйте инструкциям на экране:
- Certbot запросит ваш email для уведомлений (о продлении сертификатов и безопасности).
- Примите соглашение об обслуживании.
- Выберите домены, для которых нужно выпустить сертификат (Certbot может автоматически обнаружить домены, настроенные на вашем веб-сервере).
- Certbot также предложит вам перенаправить HTTP на HTTPS, что рекомендуется для безопасности.
Шаг 3: Проверка автоматического обновления сертификата
Let's Encrypt сертификаты действительны только 90 дней, поэтому важно настроить их автоматическое обновление.
- Certbot автоматически добавляет cron-задачу для обновления сертификатов. Это задача, которая запускается автоматически дважды в день и проверяет, не истекает ли срок действия ваших сертификатов. Если срок подходит к концу, Certbot автоматически обновит их.
- Проверьте, что cron-задача настроена правильно:
sudo systemctl list-timers | grep certbot
- Эта команда покажет таймеры, настроенные в системе, и вы должны увидеть задачу для обновления сертификатов.
- Проверьте обновление вручную:
sudo certbot renew --dry-run
Эта команда выполняет "сухой запуск" процесса обновления сертификатов. Она проверяет, все ли настроено правильно, без фактического обновления сертификата. Если команда завершается без ошибок, то Certbot корректно настроен на автоматическое обновление сертификатов.
Шаг 4: Дополнительная настройка для перезагрузки веб-сервера
Иногда после обновления сертификата необходимо перезагрузить веб-сервер, чтобы изменения вступили в силу. Certbot позволяет настроить это автоматически через --deploy-hook.
- Откройте cron-файл для редактирования:
sudo nano /etc/cron.d/certbot
- Этот файл содержит задачи cron для Certbot.
- Добавьте строку для автоматической перезагрузки веб-сервера:Для Apache:
0 */12 * * * root test -x /usr/bin/certbot -a ! -d /run/systemd/system && certbot -q renew --deploy-hook "systemctl reload apache2"
Для Nginx:
0 */12 * * * root test -x /usr/bin/certbot -a ! -d /run/systemd/system && certbot -q renew --deploy-hook "systemctl reload nginx"
- Что делают эти команды:0 */12 * * *: Задает выполнение задачи каждые 12 часов.
test -x /usr/bin/certbot: Проверяет, установлен ли Certbot.
-a ! -d /run/systemd/system: Убедитесь, что система не находится в режиме обслуживания.
certbot -q renew: Запускает обновление сертификатов в тихом режиме (-q), чтобы не выводить лишнюю информацию в логах.
--deploy-hook "systemctl reload apache2": Перезагружает Apache, если сертификат был обновлен. То же самое для Nginx.
Заключение
Теперь у вас настроен автоматический выпуск и обновление SSL сертификатов для вашего веб-сервера с помощью Certbot. Это помогает поддерживать сайт защищенным, не беспокоясь о сроках действия сертификатов.
Контакты Если вам нужен скрипт или помощь в настройке IT-инфраструктуры, обращайтесь по следующим контактам:
Электронная почта: i@vlozenko.ru
Telegram: @waitenis