Поиск по сайту:

Как защитить Nginx с помощью Let's Encrypt на CentOS 8


Основанный в апреле 2016 года фондом Electronic Frontier Foundation (EFF), Let’s Encrypt – это бесплатный автоматизированный цифровой сертификат, который обеспечивает TLS шифрование для веб-сайтов совершенно бесплатно.

Целью сертификата Let’s Encrypt является автоматизация проверки, создания, подписания, а также автоматического обновления сертификата безопасности. Этот сертификат обеспечивает простое и удобное соединение с веб-серверами с использованием протокола HTTPS и без каких-либо сложностей. Сертификат действителен только в течение 90 дней, после чего можно активировать автоматическое продление.

Рекомендуется к прочтению: Как защитить Apache с помощью SSL-сертификата Let's Encrypt в CentOS 8

В этой статье мы покажем, как установить Let's Encrypt, чтобы получить бесплатный SSL-сертификат для защиты веб-сервера Nginx в CentOS 8 ( те же инструкции работают и на RHEL 8). Мы также объясним вам, как автоматически обновить ваш SSL-сертификат.

Предварительные условия

Прежде чем мы продолжим, убедитесь, что вы проверили следующее.

1. Полное доменное имя (FQDN), указывающее на выделенный IP-адрес веб-сервера. Это необходимо настроить в клиентской области вашего провайдера веб-хостинга DNS. В этом руководстве мы используем доменное имя linuxtechwhiz, которое указывает на IP-адрес 34.70.245.117.

2. Вы также можете подтвердить это, выполнив прямой поиск с помощью команды dig, как показано.

dig linuxtechwhiz.info

3. Nginx установлен и работает на веб-сервере. Вы можете подтвердить это, войдя в терминал и выполнив команду ниже. Если Nginx не установлен, следуйте нашей статье, чтобы установить Nginx на CentOS 8.

sudo systemctl status nginx

4. Вы также можете подтвердить это, посетив URL-адрес веб-сервера в веб-браузере.

http://server-IP-or-hostname

Из URL-адреса мы ясно видим, что сайт не защищен и, следовательно, не зашифрован. Это означает, что любые запросы, сделанные к веб-серверу, могут быть перехвачены, включая важную и конфиденциальную информацию, такую как имена пользователей, пароли, номера социального страхования и информацию о кредитных картах, и это лишь некоторые из них.

Теперь давайте запачкаем руки и установим Let’s Encrypt.

Шаг 1. Установите Certbot в CentOS 8.

Чтобы установить сертификат Let’s Encrypt, вам прежде всего необходимо установить certbot. Это расширяемый клиент, который получает сертификат безопасности от Let’s Encrypt Authority и позволяет автоматизировать проверку и настройку сертификата для использования веб-сервером.

Загрузите certbot с помощью команды curl.

sudo curl -O https://dl.eff.org/certbot-auto

Затем переместите сертификат в каталог /usr/local/bin.

sudo mv certbot-auto /usr/local/bin/certbot-auto

Затем назначьте разрешение файла для файла сертификата, как показано.

chmod 0755 /usr/local/bin/certbot-auto

Шаг 2. Настройте блок сервера Nginx

Блок сервера в Nginx — это эквивалент виртуального хоста в Apache. Настройка блоков серверов не только позволяет вам настроить несколько веб-сайтов на одном сервере, но также позволяет certbot подтвердить право собственности на домен Центру сертификации – CA.

Чтобы создать блок сервера, выполните показанную команду.

sudo vim /etc/nginx/conf.d/www.linuxtechwhiz.info

Обязательно замените доменное имя своим собственным доменным именем. Затем вставьте конфигурацию ниже.

server {
   server_name www.linuxtechwhiz.info;
   root /opt/nginx/www.linuxtechwhiz.info;

   location / {
       index index.html index.htm index.php;
   }

   access_log /var/log/nginx/www.linuxtechwhiz.info.access.log;
   error_log /var/log/nginx/www.linuxtechwhiz.info.error.log;

   location ~ \.php$ {
      include /etc/nginx/fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

Сохраните файл и выйдите из текстового редактора.

Шаг 3. Установите сертификат Lets Encrypt на CentOS 8

Теперь используйте команду certbot, чтобы инициализировать получение и настройку сертификата безопасности Let’s Encrypt.

sudo /usr/local/bin/certbot-auto --nginx

Эта команда запустит и установит несколько пакетов Python и их зависимости, как показано.

После этого последует интерактивное приглашение, как показано:

Если все прошло хорошо, в самом конце вы увидите поздравительное сообщение.

Чтобы убедиться, что ваш сайт Nginx зашифрован, перезагрузите веб-страницу и обратите внимание на символ замка в начале URL-адреса. Это означает, что сайт защищен с помощью шифрования SSL/TLS.

Чтобы получить дополнительную информацию о сертификате безопасности, нажмите на символ замка и выберите опцию «Сертификат».

Дополнительная информация о сертификате безопасности будет отображена, как показано ниже.

Кроме того, чтобы проверить надежность сертификата безопасности, посетите https://www.ssllabs.com/ssltest/ и найдите более точный и углубленный анализ состояния сертификата безопасности.

Шаг 4. Обновление сертификата Let’s Encrypt

Как мы видели ранее, сертификат безопасности действителен только в течение 90 дней и его необходимо продлить до истечения срока его действия.

Вы можете смоделировать или протестировать процесс обновления сертификата, выполнив команду:

sudo /usr/local/bin/certbot-auto renew --dry-run

Заключение

На этом завершается руководство по обеспечению безопасности Nginx с помощью Let’s Encrypt в CentOS 8. Let’s Encrypt предлагает эффективный и простой способ защитить ваш веб-сервер Nginx, который в противном случае было бы сложно сделать вручную.

Теперь ваш сайт должен быть полностью зашифрован. За несколько недель до истечения срока действия сертификата EFF предупредит вас по электронной почте о необходимости продлить сертификат, чтобы избежать перерывов, которые могут возникнуть из-за истечения срока действия сертификата. Вот и все ребята на сегодня!