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

Настройка 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 {

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

На виртуальной машине 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

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

# systemctl restart nginx