Я пытаюсь настроить обратный прокси-сервер nginx для своей компании, сейчас я нахожусь на стадии тестирования. Это схема, какая у меня временная.
клиент --- https -> nginx (VM1) --- https -> backend (IIS 8) (VM2)
Мой файл nginx.conf.
пользователь nginx;
worker_processes auto;
worker_rlimit_nofile 32768;
error_log /var/log/nginx/error.log предупреждать;
pid /var/run/nginx.pid;
События {
worker_connections 32768;
}
http {
include /etc/nginx/mime.types;
default_type applierveation/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main buffer=32k flush=1m;
include /etc/nginx/conf.d/rproxy.conf;
}
Мой rproxy.conf
upstream my_https_servers {
# upstream server on private ip 10.X.X.X
# upstream server have my own ssl certificate create with my own CA.
server domtest1.testdomain.com:443;
keepalive 128;
}
server {
listen 1.2.3.4:80; #public ip address
server_name test.mydomain.com www.test.mydomain.com;
return 301 https://test.mydomain.com$request_uri;
}
server {
listen 1.2.3.4:443 ssl http2;
server_name test.mydomain.com;
#I was extract certificate and key from trusted CA signed wild certificate.
ssl_certificate /etc/nginx/ssl/testmydomain.crt;
ssl_certificate_key /etc/nginx/ssl/testmydomain.key;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/nginx/ssl/globalsign.pem;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;
gzip on;
gzip_comp_level 5;
gzip_vary on;
gzip_proxied any;
gzip_buffers 16 8k;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options: nosniff;
add_header 'Referrer-Policy' 'no-referrer-when-downgrade';
add_header Feature-Policy "geolocation none;midi none;notifications none;push none;sync-xhr none;microphone none;camera none;magnetometer none;gyroscope none;speaker self;vibrate none;fullscreen self;payment none;";
}
}
Первая проблема - когда я подключаюсь из своего браузера, браузер предупреждает меня о ненадежном сертификате, который размещен на моем вышестоящем сервере, и игнорирует доверенный сертификат на обратном прокси-сервере.
Вторая проблема заключается в том, что HSTS не применяется с моего обратного прокси, но также с моего восходящего сервера.
Если у вас есть совет, я был бы признателен. Если вам что-то еще нужно о серверах, просто спросите.
С уважением Борис