Как обезопасить Nginx с Let’s Encrypt на Debian 12 13 января .01.2025 8584 Для защиты передаваемых данных между веб-сайтом и пользователем, а также для предотвращения перехвата информации или её изменения злоумышленниками, используется протокол HTTPS. Являясь более безопасной версией протокола HTTP, HTTPS сегодня – стандарт для всех современных сайтов. В особенности это касается сайтов, обрабатывающих конфиденциальные данные: пароли, платежи или личную информацию. Более того, наличие HTTPS повышает доверие к сайту у пользователей и улучшает его SEO-рейтинг. Для получения доступа к сайту по протоколу HTTPS применяются SSL/TLS-сертификаты, которые зашифровывают данные между пользователем и сервером, тем самым защищая передаваемую информацию. Наибольшей популярностью пользуются сертификаты, предоставляемые центром сертификации Let’s Encrypt. Данные сертификаты предоставляются бесплатно и поддерживаются практически всеми современными браузерами и веб-серверами, в том числе Nginx. Как обезопасить Nginx с Let’s EncryptДалее рассмотрим, как установить сертификат Let’s Encrypt на сайт, управляемый веб-сервером Nginx, который работает на виртуальном выделенном сервере с Debian 12. В Debian 12 наиболее удобным способом установки сертификата от Let’s Encrypt представляется применение утилиты Certbot. Данная утилита является инструментом, специально разработанным для упрощённого получения Let’s Encrypt сертификатов и работы с ними. Certbot автоматизирует процесс генерации, проверки, установки и обновления сертификатов, что делает внедрение протокола HTTPS простым и быстрым. Для начала, перед установкой нового программного обеспечения обновите информацию о доступных пакетах:
Следующей командой запустите установку утилиты Certbot и плагина для данной утилиты. Устанавливаемый софт позволит автоматически интегрировать и настраивать сертификаты на Nginx:
Настройка брандмауэраЕсли вы используете на своём VPS брандмауэр UFW, вам необходимо добавить в него правило, разрешающее доступ к серверу по порту 443. Данный порт используется для установки соединения по протоколу HTTPS. Брандмауэр UFW содержит предустановленные профили для основных протоколов. Профиль, позволяющий создавать правила для доступа к веб-серверу Nginx по протоколу HTTP, называется
Затем, чтобы открыть доступ к нашему веб-сайту как по HTTP, так и по HTTPS, необходимо добавить в брандмауэр разрешающее правило для профиля, который называется
Чтобы увидеть список действующих правил брандмауэра, выполните команду:
Вывод команды должен содержать в том числе разрешающее правило
На данном этапе веб-сайт по-прежнему доступен по протоколу HTTP, но всё ещё не работает при подключении с использованием HTTPS. Чтобы организовать такое соединение между веб-сервером и клиентом, необходима установка TLS-сертификата. Установка сертификата Let’s EncryptЧтобы установить сертификат Let’s Encrypt, запустите следующую команду, заменив
В процессе работы утилита попросит вас указать адрес электронной почты. Он будет использоваться для рассылки уведомлений об обновлениях и сообщений о мерах безопасности. Если вы не хотите получать подобные письма, используйте латинский символ Далее сервер Let’s Encrypt должен убедиться в том, что вы действительно владеете указанными доменами. После успешной проверки Certbot сгенерирует TLS-сертификат и приватный ключ. После чего утилита внесёт необходимые изменения в конфигурацию вашего сайта в Nginx и сохранит сертификат в стандартной директории Let’s Encrypt. Также Certbot автоматически настроит редирект с HTTP на HTTPS.
После внесения изменений в конфигурацию Certbot автоматически перезапустит Nginx, чтобы активировать SSL. Let’s Encrypt сертификаты действуют 90 дней. Certbot автоматически создаёт задачу для их обновления. Чтобы проверить, работает ли задача, выполните команду:
Вывод команды должен выглядеть примерно так: Также можно вручную протестировать процесс обновления сертификата:
На данный момент наш сайт уже доступен по протоколу HTTPS. Чтобы проверить это, откройте браузер и перейдите по адресу
Корректировка конфигурации NginxКонфигурация Nginx, скорректированная утилитой Certbot при добавлении в систему TLS-сертификата, в целом абсолютно корректна. При этом можно обратить внимание на некоторые моменты в файле конфигурации, в нашем случае – Например, использование директив В файле конфигурации, скорректированном утилитой Certbot, используются две директивы
Такое количество их использований – избыточно. Если запрос на порт 80 не соответствует никакому домену, то он уже будет обработан условием. Применение явного
Таким образом, все запросы на домены Следует учитывать, что если вы вносите какие-либо изменения в конфигурацию Nginx, то после этого необходимо проверить её на корректность синтаксиса:
И, наконец, чтобы изменения вступили в силу, следует перезапустить службу веб-сервера:
Содержание статьи Другие статьина тему Linux | |||||
| |