Поскольку защита данных и их конфиденциальность в интернете являются требованием обязательным, стандартом для всех веб-ресурсов стал протокол 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 в случае обновления сертификата.
