Установка сертификата Let's Encrypt

DataExpress Web Server может работать по протоколу HTTPS, но для этого требуется сертификат, выданный доверенным центром сертификации. В этой статье я расскажу, как бесплатно получить сертификат из наиболее популярного центра сертификации Let's Encrypt, как его автоматически продлевать и как настроить веб-сервер на использование сертификата.

Все настройки проводились в системе Ubuntu 22.04 с правами администратора. Предполагается, что кроме DataExpress Web Server у вас не запущено других веб-серверов.

Для начала остановите веб-сервер:

systemctl stop dxwebsrv

Получать и продлевать сертификат мы будем с помощью утилиты certbot. Установим certbot:

apt-get install certbot

Прежде чем получить сертификат, нужно зарегистрироваться. Вы должны будете указать действующую электронную почту. В дальнейшем на эту почту будут приходить предупреждения об истечении срока действия сертификата.

certbot register -m admin@example.ru

Теперь получаем сертификат:

certbot certonly --standalone -d example.ru

При получении сертификата требуется доказать, что именно вы являетесь владельцем домена. Делается это с помощью http-сервера. Наиболее простым вариантом является использование встроенного сервера certbot (параметр –standalone). Необходимым условием является свободный порт 80.

Все полученные сертификаты хранятся в папке /etc/letsencrypt/archive/example.ru, в том числе и просроченные, а ссылки на актуальные сертификаты находятся в /etc/letsencrypt/live/example.ru. На них и будет ссылаться ваш веб-сервер.

Настраиваем веб-сервер. Для этого добавьте в файл dxwebsrv.cfg следующие параметры в секцию Server:

[Server]
...
Port=443
UseSSL=1
PrivateKey=/etc/letsencrypt/live/example.ru/privkey.pem
Certificate=/etc/letsencrypt/live/example.ru/cert.pem
...

Запустите веб-сервер:

systemctl start dxwebsrv

Проверьте работу. В браузере должна открываться ссылка: https://example.ru.

Сертификаты Let's Encrypt выдаются на три месяца, по истечении которых сертификат нужно продлить. Сертификат продлевается следующей командой:

certbot renew

Эта команда продлевает сертификат только в случае необходимости. Если сертификат все еще актуален, то команда фактически ничего не сделает.

Нет необходимости вводить эту команду вручную, т. к. при установке автоматически создается задание cron на обновление сертификатов каждые 12 часов. Задание cron находится в файле /etc/cron.d/certbot.

Планировщик задач cron может быть не установлен в вашей системе. Если его нет, то установите его:

apt-get install cron

Более подробно о Let's Encrypt можно почитать по следующим ссылкам: