Как защитить 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 предупредит вас по электронной почте о необходимости продлить сертификат, чтобы избежать перерывов, которые могут возникнуть из-за истечения срока действия сертификата. Вот и все ребята на сегодня!