В этом руководстве мы разберём процесс получения и установки бесплатного TLS/SSL сертификата от Let’s Encrypt на сервере с Arch Linux, используя Nginx.
Содержание статьи
Получение бесплатного TLS/SSL сертификата от Let’s Encrypt
Сначала необходимо установить клиент Let’s Encrypt, который можно найти в репозитории сообщества Arch Linux. Для установки выполните следующую команду.
sudo pacman - S certbot
Для получения сертификата для веб-сервера Nginx можно использовать два плагина: standalone и Webroot. Я рекомендую выбрать Webroot, так как у него есть два преимущества по сравнению с standalone при выдаче и обновлении сертификатов.
- Плагин standalone требует запуска отдельного временного веб-сервера, из-за чего необходимо остановить Nginx. С плагином Webroot это не требуется, и вы можете продолжать использовать Nginx без перерыва.
- Плагин standalone для проверки домена требует привязки вашего доменного имени к IP-адресу исходного сервера. Это означает, что при использовании CDN-сервиса, например, CloudFlare, необходимо временно открыть доступ к вашему исходному серверу во время получения или обновления сертификата. Однако, при использовании плагина Webroot этого делать не нужно.
Плагин Webroot выполняет проверку, создавая временный файл в директории your-web-root/.well-known/acme-challenge/.
Для получения сертификата с использованием плагина Webroot выполните следующую команду.
sudo cerrbot certonly --webroot --email - d www. example.com - d example.com - w /usr/share/nginx/example.com/
Подкоманда certonly инструктирует клиента letsencrypt получить сертификат, но не производить его установку, так как на данный момент автоматическая настройка для Nginx этим клиентом не поддерживается.
Если вы пользуетесь CDN-сервисом, например, CloudFlare, возможно, вам потребуется активировать SSL в настройках вашего CDN.
Автоматическое обновление вашего сертификата.
Сертификаты Let’s Encrypt имеют срок действия 90 дней. Для их продления достаточно повторно выполнить ту же команду. Для автоматического продления сертификата можно внести изменения в crontab пользователя root.
sudo crontab - e
Затем настройте задачу cron для её ежемесячного выполнения, как указано ниже. Не забудьте заменить адрес электронной почты и доменное имя.
@monthly certbot renew --quiet
Команда будет запускаться в полночь первого числа каждого месяца.
Команда будет запускаться в полночь первого числа каждого месяца.

