Let’s Encrypt — центр сертификации, который позволяет бесплатно получить TSL/SSL-сертификат. Благодаря клиенту Certbot, который автоматически выполняет большую часть настроек, выпустить сертификат и настроить HTTPS-протокол можно за несколько простых шагов.
Предварительная подготовка
Вам необходимы:
- сервер с операционной системой Ubuntu 18.04/20.04;
- Nginx, установленный на сервер (Как установить Linux, Nginx, MySQL, PHP (LEMP) в Ubuntu 18.04/20.04);
- домен, который привязан к облачному серверу (Как привязать домен к облачному серверу?).
Этап 1. Установка Certbot
Certbot — клиент для автоматического создания и установки SSL-сертификата. Разработчики постоянно работают над его улучшением. Поэтому Certbot, который имеется в стандартном репозитории Ubuntu, обычно устаревший.
-
1
Для возможности добавления PPA репозиториев выполните команду:
sudo apt-get install software-properties-common
-
2
Добавьте репозиторий Certbot командами:
sudo add-apt-repository ppa:certbot/certbot
-
3
Затем обновите информацию в операционной системе:
sudo apt-get update
-
4
Установите Certbot для Nginx командой:
sudo apt install python-certbot-nginx
Готово, Certbot установлен.
Этап 2. Настройка Nginx Ubuntu
Certbot автоматический ищет в конфигурационных файлах Nginx блок server
, отвечающий за домен, для которого будет установлен SSL-сертификат.
Если вы устанавливали Nginx по инструкции Как установить Linux, Nginx, MySQL, PHP (LEMP) в Ubuntu 18.04/20.04, то вы используете конфигурационный файл по умолчанию для одного домена. Файлы вашего сайта расположены в каталоге /var/www/html
, а в конфиге в директиве server_name
указан домен, который привязан к серверу.
Проверим настройки конфига:
-
1
Откройте конфигурационный файл командой:
sudo nano /etc/nginx/sites-available/default
-
2
В конфигурационном файле должно быть следующее:
server { listen 80 default_server; listen [::]:80 default_server; # SSL configuration # listen 443 ssl default_server; # listen [::]:443 ssl default_server; root /var/www/html; # Add index.php to the list if you are using PHP index index.php index.html index.htm index.nginx-debian.html; server_name faq-reg.ru www.faq-reg.ru; location / { try_files $uri $uri/ =404; } }
-
3
Убедитесь, что в директиве
server_name
указан домен с и без www. Если это не так, внесите изменения, сохраните и закройте файл. -
4
Затем перезапустите Nginx командой:
sudo systemctl reload nginx
Готово, вы настроили Nginx.
Этап 3. Разрешение HTTPS-подключения
В инструкции Как установить Linux, Nginx, MySQL, PHP (LEMP) в Ubuntu 18.04/20.04 на втором этапе «Установка Nginx» были произведены настройки firewall. Проверьте, что HTTPS-подключение для сервера доступно, с помощью команды
sudo iptables --list
Вы должны получить примерно следующее содержимое:
Этап 4. Получение SSL-сертификата
Certbot позволяет получить SSL-сертификат, а плагин для Nginx — выполнить автоматическую настройку и перезагрузку конфига, если это необходимо.
Для получения SSL-сертификата выполните команду:
sudo certbot --nginx -d faq-reg.ru -d www.faq-reg.ru
Ключ -d
определяет имя домена, для которого выпускается сертификат. Укажите вместо домена faq-reg.ru
свой домен, который привязан к серверу.
При первом запуске Certbot система запросит ваш e-mail и соглашение на использование сервиса. Затем будет произведена проверка домена: DNS-серверы домена должны указывать на ваш сервер.
Если проверка прошла успешно, Certbot спросит, как вы хотите настроить конфигурацию HTTPS:
- 1. Без редиректа — не вносит никаких изменений в конфигурационный файл.
- 2. Редирект — настраивает все редиректы для безопасного доступа по HTTPS. Рекомендуется для новых сайтов.
Выберите подходящий вариант (введите 1 или 2) и нажмите Enter:
После окончания установки SSL-сертификата система выдаст сообщение, что процесс установки прошёл успешно. В сообщении будет указано, где расположены файлы вашего сертификата. Сертификат Let’s Encrypt действителен только 90 дней. Certbot автоматически будет обновлять сертификат. При возникновении ошибки вы получите сообщение на e-mail, который был указан при первом запуске Certbot.
При переходе по вашему домену будет указано, что соединение с сайтом защищено:
Готово, теперь ваш сайт защищён SSL-сертификатом Let’s Encrypt. Настройка была произведена автоматически благодаря Certbot.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊