Как настроить доступ по HTTPS в Lighttpd на Debian

Защита передаваемых данных в веб-проектах является обязательным требованием, а использование протокола HTTPS давно уже стало стандартом. Шифрование трафика позволяет предотвратить перехват и подмену информации, повысить доверие пользователей к веб-ресурсу, а также соответствует требованиям поисковых систем и браузеров.

В статье разберём, как настроить доступ по HTTPS к веб-странице в Lighttpd на виртуальном сервере под управлением Debian 12.

Как настроить доступ по HTTPS в Lighttpd на Debian

Основа HTTPS – это защищённый канал передачи информации между сервером и клиентом, который использует протокол TLS. В данной конфигурации веб-сервер обрабатывает зашифрованные соединения при помощи сертификатов безопасности, которые используются для шифрования трафика при помощи TLS. При этом важно, чтобы TLS-сертификат был выпущен доверенным центром сертификации, например, Let’s Encrypt. Сертификаты Let’s Encrypt являются бесплатными, признаются любыми браузерами и поддерживают автоматизированный процесс выпуска и обновления.

Настройка доступа через брандмауэр

Изначально установленный Lighttpd транслирует веб-ресурс по протоколу HTTP. Соответственно, чтобы получить возможность увидеть веб-страницу в браузере, необходимо открыть доступ к виртуальному серверу по HTTP. Также центр сертификации использует HTTP при проверке валидности домена, для которого будет запрошен сертификат. Поэтому, если вы используете брандмауэр UFW, добавьте правило, разрешающее подключения по данному протоколу:

$ sudo ufw allow http

Также добавьте в UFW разрешающее правило для протокола HTTPS, поскольку через него будет осуществляться доступ к веб-странице после установки TLS-сертификата и настройки Lighttpd:

$ sudo ufw allow https

Важно учитывать, что выпуск TLS-сертификата возможен только при наличии корректно настроенного доменного имени, указывающего на виртуальный сервер. Если сайт доступен исключительно по IP-адресу, Let’s Encrypt не сможет выполнить проверку владения доменом и отклонит запрос на выпуск сертификата. Таким образом, необходимо к IP-адресу вашего сервера привязать имя домена. Такая настройка, как правило, производится на сайте регистратора домена. В нашем примере для настройки HTTPS-доступа будет использоваться доменное имя vash-domain.ru.

Установка Certbot

В Debian веб-сервер Lighttpd настраивается с использованием модульной архитектуры. Обеспечение поддержки протоколов SSL/TLS в Lighttpd осуществляется с помощью модуля mod_openssl, который требуется включить для последующей настройки и использования HTTPS-соединения. Чтобы включить модуль, запустите следующую команду:

$ sudo lighty-enable-mod ssl

Для выпуска, установки и автоматического продления TLS-сертификатов от Let’s Encrypt используется специализированный инструмент – Certbot. Он автоматизирует процесс настройки HTTPS, выполняя проверку владения доменным именем, и впоследствии контролирует срок действия установленного сертификата. Такой подход снижает вероятность ошибок, связанных с ручным обновлением. Certbot поддерживает несколько режимов работы и совместим с большинством распространённых веб-серверов, включая Lighttpd. Для установки Certbot на Debian выполните команду:

$ sudo apt install certbot

Получение сертификата

После установки утилиты Certbot можно приступать к запросу сертификата и настройке HTTPS-доступа к сайту. Перед началом данных работ следует остановить веб-сервер Lighttpd:

$ sudo systemctl stop lighttpd

Для получения TLS-сертификата для своего домена с помощью Certbot запустите команду:

$ sudo certbot certonly --standalone -d vash-domain.ru -d www.vash-domain.ru

В данной команде:

  • certonly – указывает, что нужно только выпустить сертификат, не внося изменений в конфигурацию Lighttpd;
  • --standalone – данная опция говорит, что Certbot временно запустит собственный встроенный веб-сервер для прохождения проверки владения доменом с использованием HTTP-01 challenge;
  • -d vash-domain.ru – основной домен, для которого запрашивается сертификат;
  • -d www.vash-domain.ru – дополнительное доменное имя, которое будет включено в тот же сертификат.

В результате Certbot произведёт следующие действия:

  • попросит указать E-mail, который необходим для отправки уведомлений о работе сертификата;
  • затем попросит подтвердить своё согласие с условиями предоставления сервиса, без принятия которых нет возможности произвести регистрацию на ACME-сервере, а следовательно, и получить сертификат;
  • далее попросит вашего разрешения на передачу указанного E-mail организации EFF – одному из основателей проекта Let’s Encrypt и одновременно разработчику Certbot;
  • после чего выполнит запрос на регистрацию аккаунта в системе Let’s Encrypt и выпуск TLS-сертификата.
Вывод работы утилиты Certbot

При успешном завершении процедуры Certbot также сообщит о сохранении файла сертификата в /etc/letsencrypt/live/vash-domain.ru/fullchain.pem и файла секретного ключа, который будет использоваться для шифрования соединений, в /etc/letsencrypt/live/vash-domain.ru/privkey.pem.

Настройка HTTPS-доступа на Lighttpd

В результате выполнения предыдущей команды центр сертификации выдаст TLS-сертификат для указанного домена. Далее необходимо будет внести изменения в настройки конфигурации веб-сервера для возможности получения доступа к сайту по HTTPS. Чтобы сделать это, откройте для редактирования конфигурационный файл Lighttpd:

$ sudo nano /etc/lighttpd/conf-available/10-ssl.conf

В файле измените значение параметра ssl.pemfile на путь к файлу сертификата, чуть ранее указанному при завершении работы утилиты Certbot:

ssl.pemfile = "/etc/letsencrypt/live/vash-domain.ru/fullchain.pem"

Затем добавьте строку с параметром ssl.privkey, значение которого соответствует пути к файлу секретного ключа:

ssl.privkey = "/etc/letsencrypt/live/vash-domain.ru/privkey.pem"

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

$HTTP["scheme"] == "http" {url.redirect = (".*" => "https://vash-domain.ru$0")}

После чего сохраните файл, закройте его и запустите остановленную ранее службу lighttpd:

$ sudo systemctl start lighttpd

Если служба стартовала без ошибок, запустите браузер и проверьте доступ к странице своего веб-сайта. При подключении к сайту должен использоваться протокол HTTPS.

Подключение к веб-странице по HTTPS в Lighttpd на Debian

Вам также может понравиться