На виртуальной машине 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. Создаем каталог для хранения сертификатов и переходим в него:
2. Создаем каталог для хранения сертификатов и переходим в него:
# mkdir /etc/nginx/ssl && cd /etc/nginx/ssl
3. Генерируем файлы сертификата и ключа:
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 указываем следующее:
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 добавляем:
...
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:
...
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
...
}
6. Проверяем конфигурацию Nginx:
# nginx -t
или
# nginx -T
7. Перезапускаем Nginx:
7. Перезапускаем Nginx:
# systemctl restart nginx
Заключение:
В моём случае настройка виртуального сервера в файле /etc/nginx/sites-enabled/default для локального web-ресурса ae-eco.local:
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
server_name ae-eco.local;
ssl_certificate /etc/nginx/ssl/ae-eco.crt;
ssl_certificate_key /etc/nginx/ssl/ae-eco.key;
#redirect non-https traffic
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
root /var/www/ae-eco.local/public_html;
index index.php index.html index.htm index.nginx-debian.html;
access_log /var/www/ae-eco.local/ae-eco.local.access.log;
error_log /var/www/ae-eco.local/ae-eco.local.error.log;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_NAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
}
Заключение:
В моём случае настройка виртуального сервера в файле /etc/nginx/sites-enabled/default для локального web-ресурса ae-eco.local:
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
server_name ae-eco.local;
ssl_certificate /etc/nginx/ssl/ae-eco.crt;
ssl_certificate_key /etc/nginx/ssl/ae-eco.key;
#redirect non-https traffic
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
root /var/www/ae-eco.local/public_html;
index index.php index.html index.htm index.nginx-debian.html;
access_log /var/www/ae-eco.local/ae-eco.local.access.log;
error_log /var/www/ae-eco.local/ae-eco.local.error.log;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_NAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
}
Комментариев нет:
Отправить комментарий