Перевод сайтов на шифрованное подключение https/ssl. Получение сертификата от Let’s Encrypt и установка/настройка nginx. + автообновление при помощи certbot на Ubuntu 18.04 LTS

Для начала нам нужно установить certbot:




sudo apt install python-certbot-nginx 




Теперь 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.




Получение сертификата для домена 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



2019-04-20T02:35:10
Настройка web сервера