1. Устанавливаем certbot
Используем команду:
apt install python3-certbot-nginx
Подтверждаем установку клавишей «Y» и «Enter«
Теперь Certbot установлен и готов к использованию, но, для того, чтобы он мог настроить SSL для Nginx, нам сперва необходимо проверить настройки Nginx.
2. Проверка настроек Nginx
Certbot должен иметь возможность найти корректный серверный блок в вашей конфигурации Nginx для того, чтобы автоматически конфигурировать SSL. Для этого он будет искать директиву server_name, которая совпадает с доменным именем, для которого вы запросите сертификат.
Если вы следовали инструкциям по настройке серверного блока в руководстве по установке Nginx, у вас должен быть серверный блок для вашего домена по адресу /etc/nginx/sites-available/example.com с уже правильно настроенной директивой server_name.
Для проверки откройте файл серверного блока в nano или любом другом текстовом редакторе:
sudo nano /etc/nginx/sites-available/example.com
Найдите строку с server_name. Она должна выглядеть следующим обр:
...
server_name example.com www.example.com;
...
Если она выглядит таким образом, закройте файл и переходите к следующему шагу.
Если она не выглядит так, как описано выше, обновите директиву server_name. Затем сохраните и закройте файл, после чего проверьте корректность синтаксиса вашего конфигурационного файла командой:
sudo nginx -t
Если вы получили ошибку, откройте файл серверного блока и проверьте его на наличие опечаток или пропущенных символов. После того, как ваш конфигурационный файл будет проходить проверку на корректность, перезагрузите Nginx для применения новой конфигурации:
sudo service nginx reload
Теперь Certbot может находить и обновлять корректный серверный блок.
Далее обновим настройки файрвола для пропуска HTTPS трафика.
Настраиваем certbot:
sudo certbot certonly
После чего вы увидите следующее сообщение:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
How would you like to authenticate with the ACME CA?
1: Nginx Web Server plugin - Alpha (nginx)
2: Spin up a temporary webserver (standalone)
3: Place files in webroot directory (webroot)
Select the appropriate number [1-3] then [enter] (press 'c' to cancel):
Выбираем «3» (Place files in webroot directory (webroot)) вариант.
После чего нас попросят ввести наш e-mail. Она будет отображаться во всех установленных сертификатах:
your@eeee.mail
После этого вас просят прочитать соглашение и либо принять его или отклонить.
Согласшамся и нажимаем «A» -agree
После чего вас просят подписаться или не подписаться на рассылку от Let’s Encrypt:
Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about EFF and our work to encrypt the web, protect its users and defend digital rights.
(Y)es/(N)o:
Согласшамся и нажимаем Y -yes или отказываемся и нажимаем N -no
После чего нас просят ввести домен/ы, разделенные запятыми, пробелами или /. Отказываемся, вписав «C«.
3. Получение сертификата для домена sitename.ru
certbot certonly -d sitename.ru -d www.sitename.ru
Последние версии certbot автоматически создают задание для
автообновления сертификатов по крону: /etc/cron.d/certbot либо с использованием системного таймера systemctl list-timers и создавать его самому не нужно!
Оригинал используемой статьи: https://www.digitalocean.com/community/tutorials/nginx-let-s-encrypt-ubuntu-18-04-ru
Проверить правильность настройки https можно на сайте: https://www.ssllabs.com/ssltest/index.html