Введение
Let's Encrypt — это центр сертификации (ЦС), который автоматизирует бесплатное создание, проверку, выпуск и обновление сертификатов X.509 для протокола TLS/SSL, обеспечивая шифрование HTTPS на веб-серверах.
В этом руководстве мы будем использовать Certbot, чтобы получить бесплатный SSL-сертификат для Nginx в Ubuntu и настроить сертификат для автоматического обновления.
Certbot — это простой в использовании автоматизированный клиент, который извлекает и распространяет сертификаты SSL/TLS для веб-сервера.
Предпосылки
Прежде чем приступить к работе с этим руководством, на вашем сервере должен быть установлен пользователь без полномочий root с привилегиями sudo. Следуйте этому руководству: Первоначальная настройка в Ubuntu 16.04-17.10
Установить Сертбот
Первым шагом в использовании Let's Encrypt для получения SSL-сертификата является установка программного обеспечения Certbot на ваш сервер.
Обновим список пакетов:
sudo apt-get update
Мы устанавливаем следующий пакет, который позволяет вам легко управлять источниками программного обеспечения независимых производителей программного обеспечения:
sudo apt-get install software-properties-common
Давайте добавим официальный репозиторий Cerbot, чтобы получать самые свежие пакеты:
sudo add-apt-repository ppa:certbot/certbot
Вам нужно будет нажать ENTER, чтобы принять.
Давайте снова обновим список пакетов:
sudo apt-get update
И, наконец, установим пакет Certbot для Nginx:
sudo apt-get install python-certbot-nginx
Теперь Certbot готов к использованию, но для установки SSL-сертификатов для Nginx нам необходимо проверить некоторые конфигурации Nginx.
Конфигурация Nginx
Certbot может автоматически настраивать SSL-сертификаты для Nginx, но он должен уметь находить в конфигурации правильный блок сервера. Для этого он ищет директиву server_name, которая соответствует домену, для которого вы запрашиваете сертификат.
Если вы начинаете с новой установки Nginx, вы можете обновить файл конфигурации по умолчанию.
sudo nano /etc/nginx/sites-available/default
Найдите строку server_name и замените подчеркивание: «_» на ваше доменное имя:
...
server_name esempio.com www.esempio.com;...
Сохраните и закройте файл.
Проверьте правильность конфигурации файла:
sudo nginx -t
Перезапустите Nginx:
sudo systemctl reload nginx
Теперь Certbot сможет найти правильный блок сервера и обновить его.
Конфигурация брандмауэра (ufw)
Если брандмауэр ufw включен, вам необходимо создать новое правило, разрешающее HTTPS-трафик.
Чтобы проверить, активен ли брандмауэр, введите следующую команду:
sudo ufw status
Чтобы разрешить HTTPS-трафик для Nginx:
sudo ufw allow 'Nginx Full'
Получить SSL-сертификат
Certbot использует плагин Nginx для получения SSL-сертификатов.
sudo certbot --nginx
Выполнение этой команды позволит вам получить сертификат SSL, а Certbot автоматически изменит конфигурацию Nginx.
В противном случае вы можете получить сертификат, а затем вручную настроить Nginx с помощью следующей команды:
sudo certbot --nginx certonly
Автоматическое продление
Пакеты Certbot поставляются с заданием cron, которое автоматически обновляет ваши сертификаты до истечения срока их действия. Поскольку сертификаты Let's Encrypt действительны в течение 90 дней, настоятельно рекомендуется воспользоваться этой функцией. Вы можете проверить автоматическое обновление сертификатов, выполнив эту команду:
sudo certbot renew --dry-run
Установка Let’s Encrypt с помощью Certbot завершена.