Найти в Дзене
Заметки об ИТ

Настройка https в Nginx (openssl)

Источники: один, второй.

На виртуальной машине Oracle VM VirtualBox установлен пакет LEMP (Debian 12.4, Nginx, MySQL/Mariadb, PHP 8.2).

Имя web-ресурса: ae-eco.local, для него и будем настраивать сертификат.

1. Обновляем пакеты GNU\Linux:

# apt-get update && apt-get upgrade

2. Создаем каталог для хранения сертификатов и переходим в него:

# mkdir /etc/nginx/ssl && cd /etc/nginx/ssl

3. Генерируем файлы сертификата и ключа:

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout ae-eco.key -out ae-eco.crt

При генерации сертификата на вопросы отвечаем как считаем нужным, в моём случае:

Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Astrakhan
Locality Name (eg, city) []:Astrakhan
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Private
Organizational Unit Name (eg, section) []:Private
Common Name (e.g. server FQDN or YOUR name) []:
ae-eco.local
Email Address []:
admin@ae-eco.local

4. В настройке сервера Nginx указываем следующее:

server {

...

listen 443 ssl http2;

ssl_certificate /etc/nginx/ssl/ae-eco.crt;

ssl_certificate_key /etc/nginx/ssl/ae-eco.key;

...

}

5. Для переадресации со схемы http на https добавляем:

server {

...

if ($scheme != "https") {
return 301 https://$host$request_uri;

}

...

}

6. Проверяем конфигурацию Nginx:

# nginx -t

или

# nginx -T

7. Перезапускаем Nginx:

# systemctl restart nginx