В этом руководстве вы узнаете, как установить SSL-сертификат на Lighttpd. Руководство охватывает текущую конфигурацию (отдельные файлы сертификата и приватного ключа с использованием модуля mod_openssl), устаревший метод с объединённым PEM-файлом для старых сборок, а также быструю проверку конфигурации перед перезапуском.
Мы также записали видео, которое проведёт вас через весь процесс. Если вы предпочитаете текстовую версию, продолжайте читать ниже.
Создание CSR-кода на Lighttpd
Начнём с создания CSR (Certificate Signing Request). CSR — это блок закодированного текста, который вы отправляете в удостоверяющий центр для подачи заявки на SSL-сертификат. У вас есть два варианта:
- Используйте наш CSR-генератор для автоматического создания CSR.
- Следуйте нашему пошаговому руководству как создать CSR на Lighttpd.
Откройте файл CSR в любом текстовом редакторе и скопируйте его содержимое, включая строки BEGIN CERTIFICATE REQUEST и END CERTIFICATE REQUEST, в соответствующее поле в процессе заказа SSL. Отправьте CSR в удостоверяющий центр и дождитесь проверки. После того как CA выдаст ваш SSL-сертификат, переходите к установке ниже.
Установка SSL-сертификата на Lighttpd
Шаг 1: Подготовьте файлы сертификата
После проверки удостоверяющий центр отправит вам файлы сертификата по электронной почте. Скачайте архив и распакуйте его. У вас должны быть:
- yourdomain.crt — ваш основной SSL-сертификат.
- yourdomain.ca-bundle — промежуточные сертификаты (CA-бандл).
- yourdomain.key — приватный ключ, который вы создали вместе с CSR.
Lighttpd рекомендует, чтобы файл, указанный в ssl.pemfile, содержал полную цепочку сертификатов: сначала ваш сертификат, а затем промежуточные сертификаты. Создайте этот объединённый файл цепочки, а затем переместите его и приватный ключ в каталог, доступный для чтения Lighttpd (например, /etc/lighttpd/ssl/):
cat yourdomain.crt yourdomain.ca-bundle > yourdomain.fullchain.pem
sudo mkdir -p /etc/lighttpd/ssl
sudo cp yourdomain.fullchain.pem yourdomain.key /etc/lighttpd/ssl/
Ограничьте доступ к приватному ключу так, чтобы читать его мог только root:
sudo chmod 600 /etc/lighttpd/ssl/yourdomain.key
Шаг 2: Включите mod_openssl
Начиная с версии 1.4.56, поддержка TLS в Lighttpd находится в загружаемом модуле под названием mod_openssl (также существуют другие бэкенды, такие как mod_mbedtls, mod_wolfssl, mod_gnutls и mod_nss). Загрузите его в основном файле конфигурации перед блоком SSL-сокета:
server.modules += ( "mod_openssl" )
Примечание: в Lighttpd 1.4.55 и более ранних версиях поддержка TLS была встроена, а не загружалась как модуль, поэтому на таких сборках эту строку можно пропустить. Проверьте версию с помощью lighttpd -v.
Шаг 3: Отредактируйте lighttpd.conf
Откройте основной файл конфигурации (путь обычно /etc/lighttpd/lighttpd.conf) в предпочитаемом редакторе:
sudo nano /etc/lighttpd/lighttpd.conf
Добавьте блок сокета для порта 443. В текущей версии Lighttpd (1.4.56+) храните цепочку сертификатов и приватный ключ в отдельных файлах: укажите в ssl.pemfile путь к файлу полной цепочки, а в ssl.privkey — путь к ключу. Именно в таком формате большинство удостоверяющих центров предоставляют файлы, и это конфигурация, рекомендованная Lighttpd.
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.fullchain.pem"
ssl.privkey = "/etc/lighttpd/ssl/yourdomain.key"
# Minimum TLS version (ssl-conf-cmd needs lighttpd 1.4.48+; TLS 1.2 is already the default on 1.4.56+)
ssl.openssl.ssl-conf-cmd = ( "MinProtocol" => "TLSv1.2" )
}
- ssl.engine включает TLS для этого сокета.
- ssl.pemfile содержит ваш сертификат, за которым следует промежуточная цепочка.
- ssl.privkey содержит приватный ключ. Начиная с версии 1.4.53, он обязателен, если ключ не находится внутри pemfile.
Чтобы перенаправлять обычный HTTP на HTTPS и гарантировать, что посетители всегда попадают на защищённую версию сайта, добавьте перенаправление для порта 80 (для этого требуется mod_redirect, который по умолчанию загружен в большинстве дистрибутивов):
$SERVER["socket"] == ":80" {
url.redirect = ( "^/(.*)" => "https://yourdomain.com/$1" )
}
Сохраните и закройте файл.
Устаревший метод: объединённый PEM и ssl.ca-file
В более старых сборках Lighttpd 1.4.x (до версии 1.4.53) использовался единый объединённый PEM-файл, содержащий вместе и сертификат, и приватный ключ, а промежуточная цепочка предоставлялась отдельно через ssl.ca-file. Если вы поддерживаете одну из таких старых систем, создайте объединённый файл следующим образом:
cat yourdomain.crt yourdomain.key > /etc/lighttpd/ssl/yourdomain.pem
Затем укажите его в блоке сокета:
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.pem"
ssl.ca-file = "/etc/lighttpd/ssl/yourdomain.ca-bundle"
}
В текущей версии Lighttpd предпочтительнее использовать отдельные ssl.pemfile и ssl.privkey, как описано в шаге 3, и хранить полную цепочку в pemfile. Директива ssl.ca-file была переименована в ssl.verifyclient.ca-file в версии 1.4.60, поскольку её реальное назначение — проверка клиентских сертификатов, а не предоставление цепочки сервера.
Шаг 4: Проверьте конфигурацию
Всегда проверяйте синтаксис перед перезапуском, так как ошибка может помешать серверу запуститься. Выполните:
sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf
Вы должны увидеть сообщение о том, что синтаксис корректен. Для более глубокой проверки, которая также загружает и инициализирует модули, используйте sudo lighttpd -tt -f /etc/lighttpd/lighttpd.conf. Исправьте все обнаруженные ошибки, прежде чем продолжить.
Шаг 5: Перезапустите Lighttpd
Примените изменения. На современной системе с systemd перезапустите службу:
sudo systemctl restart lighttpd
На старых системах, использующих SysV init, воспользуйтесь скриптом инициализации:
sudo /etc/init.d/lighttpd restart
Поздравляем, ваш SSL-сертификат теперь установлен на Lighttpd. Чтобы подтвердить результат и получить мгновенный отчёт о статусе, используйте наш SSL Checker или ознакомьтесь с нашим полным набором SSL-инструментов. Для получения дополнительных сведений см. официальную документацию Lighttpd по SSL.
Часто задаваемые вопросы
Текущая версия Lighttpd (1.4.56 и более поздние) рекомендует использовать отдельные файлы: сертификат вместе с промежуточной цепочкой в файле, указанном в ssl.pemfile, и приватный ключ в ssl.privkey. Старый объединённый PEM, в котором сертификат и ключ были соединены в один ssl.pemfile, по-прежнему работает, но раздельный формат соответствует тому, как большинство удостоверяющих центров предоставляют файлы, и является рекомендацией из документации.
Нет. Текущая рекомендация — включать промежуточные сертификаты непосредственно в файл ssl.pemfile, сразу после вашего сертификата. Директива ssl.ca-file была историческим способом завершить цепочку, когда pemfile содержал только конечный сертификат, а в версии 1.4.60 она была переименована в ssl.verifyclient.ca-file, поскольку её реальная роль — проверка клиентских сертификатов.
Выполните sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf, чтобы проверить синтаксис, или sudo lighttpd -tt -f /etc/lighttpd/lighttpd.conf для более глубокой проверки, которая также загружает модули. Исправьте все обнаруженные ошибки перед перезапуском, чтобы опечатка не помешала серверу запуститься.
Обычно это означает, что в вашем ssl.pemfile отсутствуют промежуточные сертификаты. Объедините ваш сертификат и CA-бандл в один файл, разместив сертификат первым, и укажите этот файл в ssl.pemfile. Затем проверьте конфигурацию и перезапустите сервер. Убедиться, что цепочка полная, можно с помощью нашего SSL Checker.
Подключитесь к вашему сайту с помощью OpenSSL и прочитайте предоставляемый сертификат:echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Если сертификат установлен, эта команда выведет его издателя и сроки действия. Вы также можете открыть сайт в браузере и проверить значок замка.
Сэкономьте 10% на SSL-сертификатах при заказе сегодня!
Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10


