Настройка https на сервере

Хотя веб-сервер и может работать по протоколу HTTPS, его работа в этом режиме пока еще нестабильна. Но выход есть — использование веб-сервера nginx в качестве обратного прокси.

В этом руководстве рассмотрим установку и настройку nginx, а также получение бесплатного сертификата Lets’Encrypt. Как всегда, в качестве подопытной системы выступает сервер VDS с Ubuntu 22.04.

Очень важно, чтобы у вас был домен, для которого нужно получить сертификат. Сервер VDS предоставляет вам определенный домен. Если вас не устраивает имя домена и у вас есть хостинг, вы можете в панели управления хостингом создать домен и привязать к нему IP-адрес VDS. Подробнее об этом узнавайте у своего хостера.

У вас уже должны быть установлены и настроены СУБД Firebird и DataExpress Web Server. Если вы этого еще не сделали, то читайте здесь и здесь и здесь.

Если веб-сервер DataExpress использует порт 80, то его нужно поменять на другой, т. к. этот порт нужен будет серверу nginx. Смените порт, например на 8080.

Итак, устанавливаем веб-сервер nginx.

# apt install nginx

Получение сертификата

Для получения сертификата воспользуемся популярной утилитой certbot.

# apt install certbot python3-certbot-nginx
# certbot --nginx

В процессе установки вам потребуется ввести e-mail. Он понадобится для срочных обновлений и уведомлений безопасности. Далее нужно согласиться с условиями сервиса. Затем вас спросят хотите ли вы получать новости от Electronic Frontier Foundation. Соглашаться необязательно. И на последнем шаге нужно ввести имя вашего домена. Через несколько секунд вы получите сертификат. Если сертификат получен успешно, то в сообщениях вы должны увидеть: Successfully received certificate. Автопродление сертификата уже настроено автоматически.

Настройка обратного прокси

Ваша задача вставить готовые настройки в файл /etc/nginx/sites-available/default.

location ~* /(img|/cache|/html|/demodb) {
	proxy_pass http://127.0.0.1:8080;
	proxy_set_header Host $host;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_http_version 1.1;
	proxy_set_header Connection "";
	proxy_cache off;
}

Настройка обратного прокси nginx

Вставляем настройки после параметров SSL, в конец секции server. Вместо demodb укажите свою базу данных. Если у вас их несколько, то продолжите регулярное выражение, отделяя каждую базу вертикальной чертой. Например: /(img|cache|html|mybase1|db2)

Перезагружаем nginx:

# systemctl restart nginx

На этом настройка https закончена. Проверяйте.