Перейти к основному контенту

Как защитить Nginx с помощью Let's Encrypt на Ubuntu 18.04/20.04

Let’s Encrypt — центр сертификации, который позволяет бесплатно получить TSL/SSL-сертификат. Благодаря клиенту Certbot, который автоматически выполняет большую часть настроек, выпустить сертификат и настроить HTTPS-протокол можно за несколько простых шагов.


Сервис настройки NGINX

Не тратьте время на ручную подготовку конфигурационных файлов для NGINX. Выберите нужные параметры и скачайте уже сформированный конфигурационный файл.

Предварительная подготовка

Вам необходимы:

Этап 1. Установка Certbot

Certbot — клиент для автоматического создания и установки SSL-сертификата. Разработчики постоянно работают над его улучшением. Поэтому Certbot, который имеется в стандартном репозитории Ubuntu, обычно устаревший.

  1. 1.

    Для возможности добавления PPA репозиториев выполните команду:

    sudo apt-get install software-properties-common
  2. 2.

    Добавьте репозиторий Certbot командами:

    sudo add-apt-repository ppa:certbot/certbot
  3. 3.

    Затем обновите информацию в операционной системе:

    sudo apt-get update
  4. 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. 1.

    Откройте конфигурационный файл командой:

    sudo nano /etc/nginx/sites-available/default
  2. 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. 3.
    Убедитесь, что в директиве server_name указан домен с и без www. Если это не так, внесите изменения, сохраните и закройте файл.
  4. 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.

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0