Поскольку защита данных и их конфиденциальность в интернете являются требованием обязательным, стандартом для всех веб-ресурсов стал протокол HTTPS. HTTPS (HyperText Transfer Protocol Secure) – расширенная версия протокола HTTP, которая обеспечивает защиту передаваемых данных между браузером пользователя и веб-сервером. В данном случае за безопасность отвечает шифрование с использованием криптографических протоколов SSL/TLS. HTTPS предотвращает перехват данных злоумышленниками, повышает доверие пользователей, а также улучшает позиции сайта в поисковых системах.
Чтобы в соединении браузера и веб-сервера использовался протокол HTTPS, на сервере должен быть установлен SSL/TLS-сертификат, выданный удостоверяющим центром (CA, Certification Authority). Одним из таких центров является Let’s Encrypt, который предоставляет бесплатные SSL/TLS-сертификаты.
В настоящем руководстве разберём, как установить сертификат Let’s Encrypt и связать его с конфигурацией веб-сервера для использования с HTTPS на OpenLiteSpeed, работающий на VPS с CentOS Stream 9.
Как установить сертификат Let’s Encrypt на OpenLiteSpeed
Наиболее удобный способ установки сертификата от Let’s Encrypt на CentOS Stream – это инсталляция его при помощи утилиты Certbot. Данный инструмент предназначен для упрощения внедрения HTTPS на веб-серверах и может использоваться для автоматической настройки шифрования на различных платформах, в том числе и OpenLiteSpeed.
Исходя из этого, сначала необходимо проинсталлировать в систему саму утилиту Certbot. Сделать это можно при помощи команды:
$ sudo dnf install certbot
Чтобы сайт, размещённый на OpenLiteSpeed, был доступен при подключении по протоколу HTTPS, необходимо разрешить такой доступ в брандмауэре. Для чего добавьте в брандмауэр соответствующее разрешающее правило:
$ sudo firewall-cmd --permanent --add-service=https
Чтобы активировать новые правила, перезапустите конфигурацию брандмауэра:
$ sudo firewall-cmd --reload
Список всех активных разрешающих правил можно вывести при помощи команды:
$ sudo firewall-cmd --permanent --list-all
Вывод команды должен содержать запись, соответствующую протоколу HTTPS в строке services
.

Для получения сертификата от сервера Let’s Encrypt запустите на выполнение следующую команду:
$ sudo certbot certonly --webroot -w /var/www/your-site-name.ru -d your-site-name.ru -d www.your-site-name.ru
В ходе своей работы утилита Certbot поместит созданные сертификаты в директории /etc/letsencrypt/live/your-site-name.ru/
.
В данном случае:
--webroot
– опция, указывающая путь к каталогу вашего сайта;-d
– опция, в которой указываются основной домен и его поддомены;your-site-name.ru
– доменное имя сайта, для которого будет выпущен сертификат.

Настройка OpenLiteSpeed
Чтобы произвести настройку непосредственно веб-сервера, откройте браузер и подключитесь к панели управления OpenLiteSpeed. Для чего перейдите на http://X.X.X.X:7080
, где X.X.X.X
замените на IP-адрес вашего виртуального сервера и залогиньтесь в панели с помощью соответствующей учётной записи.

Далее перейдите в раздел Listeners
, где в строке Default
кликните значок Add
.

Здесь заполните следующие поля:
Listener Name
– имя сайта в форматеhttps://your-site-name.ru
;IP Address
– в данном поле выберите значениеANY IPv4
;Port
– номер порта для доступа по протоколу HTTPS –443
;Secure
– активируйте значениеYes
.
Для сохранения внесённых изменений кликните значок Save
.

Затем в только что созданной строке нажмите значок View
.

Далее в шапке раздела Virtual Host Mappings
нажмите значок Add
.

Здесь в строке Virtual Host
из выпадающего меню выберите требуемый сайт, а в строку Domains
добавьте доменные имена сайта, обрабатываемые вашим виртуальным хостом. Затем кликните значок Save
.

Далее перейдите во вкладку SSL
и нажмите значок Edit
в разделе SSL Prvate Key & Certificate
.

Здесь в строке Private Key File
укажите полный путь к файлу приватного ключа privkey.pem
, а в строке Certificate File
– полный путь к файлу сертификата с полной цепочкой fullchain.pem
. Для сохранения изменений нажмите значок Save
.

После чего кликните значок Edit
в шапке раздела SSL Protocol
.

В строке Protocol Version
выберите версии криптографического протокола, которые будут обеспечивать безопасное шифрованное соединение между браузером клиента и сервером. В данном случае рекомендуется выбрать версии TLS 1.2
и TLS 1.3
, поскольку TLS 1.3
быстрее и безопаснее, а TLS 1.2
нужен для совместимости. В свою очередь, версии TLS 1.0
и TLS 1.1
устарели и уже не являются достаточно безопасными. Чтобы сохранить изменения, кликните Save
.

И, наконец, для применения всех внесённых в конфигурацию OpenLiteSpeed изменений кликните значок Graceful Restart
.

Чтобы убедиться в том, что сайт доступен по протоколу HTTPS, откройте браузер и перейдите на https://your-site-name.ru
, при этом не забыв заменить your-site-name.ru
на доменное имя вашего сайта.

Настройка автоматического обновления сертификата
Сертификаты Let’s Encrypt действительны только 90 дней, в связи с чем необходимо регулярно выполнять их обновление. После настройки доступа к сайту по HTTPS рекомендуется настроить автоматическое обновление установленного сертификата.
Перед настройкой убедитесь, что Certbot может успешно обновить сертификат:
$ sudo certbot renew --dry-run
Вывод команды не должен содержать ошибок.

Для того, чтобы проверка срока действия сертификата и при необходимости его обновление производились автоматически, необходимо добавить соответствующее задание в cron
. Чтобы это сделать, откройте cron
для редактирования:
$ sudo crontab -e
Затем добавьте в cron
строку задания, например:
0 3 * * * root /usr/bin/certbot renew --quiet --deploy-hook "systemctl restart lsws"
В данном случае:
0 3 * * *
– расписание выполнения задания: означает, что задание будет выполняться каждый день в 03:00;root
– означает, что задание будет выполняться от имени суперпользователя;/usr/bin/certbot renew --quiet
– команда на обновление SSL-сертификата через Certbot в случае, если срок его действия меньше 30 дней.;--deploy-hook "systemctl restart lsws"
– команда на перезапуск OpenLiteSpeed в случае обновления сертификата.