Вступление
Let's Encrypt - это центр сертификации (CA), который выдает бесплатные сертификаты SSL / TLS. Lighttpd - это легкий веб-сервер, работающий на ограниченных ресурсах. Сертификаты Let's Encrypt SSL можно легко установить на сервере Lighttpd с помощью Certbot, программного клиента, который автоматизирует большую часть процесса получения сертификатов.
Prerequistes
В этом руководстве предполагается, что вы уже создали экземпляр Vultr Cloud Compute с Lighttpd, установленным в Ubuntu 16.04 , имеете доменное имя, указывающее на ваш сервер, и вошли в систему как пользователь root.
Шаг первый: установите Certbot
Первым шагом является установка Certbot. Добавьте хранилище Certbot. Нажмите, Enter
когда появится запрос на подтверждение.
add-apt-repository ppa:certbot/certbot
Установите Certbot.
apt-get update
apt-get install certbot
Шаг второй: получить сертификат SSL
После установки Certbot вы можете получить сертификат SSL. Запустите следующую команду, заменив ее example.com
своим именем домена:
certbot certonly --webroot -w /var/www/html -d example.com -d www.example.com
Продолжайте через интерактивный установщик.
Шаг третий: Настройка файлов сертификатов для использования с Lighttpd
Certbot разместит полученные файлы сертификатов в /etc/letsencrypt/live/example.com
. Вам нужно будет предоставить пользователю Lighttpd доступ к этому каталогу.
chown :www-data /etc/letsencrypt
chown :www-data /etc/letsencrypt/live
chmod g+x /etc/letsencrypt
chmod g+x /etc/letsencrypt/live
Lighttpd требует, чтобы сертификат и закрытый ключ были в одном файле. Вам нужно будет объединить два файла. Запустите следующую команду, заменив example.com
своим именем домена.
cat /etc/letsencrypt/live/example.com/privkey.pem /etc/letsencrypt/live/example.com/cert.pem > /etc/letsencrypt/live/example.com/merged.pem
privkey.pem
И cert.pem
файлы будут объединены и сохранены как merged.pem
.
Когда ваши файлы сертификатов будут готовы, вы можете продолжить и настроить Lighttpd для использования SSL-сертификата. Откройте файл конфигурации Lighttpd для редактирования.
nano /etc/lighttpd/lighttpd.conf
Добавьте следующий блок в конец файла, заменив его example.com
своим доменным именем,
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.ca-file = "/etc/letsencrypt/live/example.com/chain.pem"
ssl.pemfile = "/etc/letsencrypt/live/example.com/merged.pem"
}
Шаг пятый: принудительное использование SSL
Для дополнительной безопасности вы можете заставить свой сервер Lighttpd направлять все HTTP-запросы к HTTPS. Откройте lighttpd.conf
файл для редактирования.
nano /etc/lighttpd/lighttpd.conf
Добавьте следующий блок в конец файла,
$HTTP["scheme"] == "http" {
$HTTP["host"] =~ ".*" {
url.redirect = (".*" => "https://%0$0")
}
}
Вам нужно будет перезапустить сервер Lighttpd, чтобы изменения вступили в силу.
systemctl restart lighttpd
Обновление сертификата SSL
Let's Encrypt выдает SSL-сертификаты со сроком действия 90 дней. Вам нужно будет обновить свой сертификат до истечения срока его действия, чтобы избежать ошибок в сертификате. Вы можете продлить сертификат с Certbot.
certbot renew
Вам нужно будет объединить сертификат и закрытый ключ для Lighttpd. Запустите следующую команду, заменив ее example.com
своим доменным именем.
cat /etc/letsencrypt/live/example.com/privkey.pem /etc/letsencrypt/live/example.com/cert.pem > /etc/letsencrypt/live/example.com/merged.pem
Ваш сертификат будет продлен еще на 90 дней.