Nginx
如何讓 nginx 使用我的證書?
我需要在 nginx 上配置一個允許 https 的反向代理。它應該工作的方式如下:
- 客戶端連接到站點(埠 80);
- 反向代理將其重定向到埠 443;
- 使用我的證書加密通信;
- 然後客戶端請求被代理傳遞到另一個站點。
我的問題在 3 和 4 中。我的配置成功地完成了所有這些並重定向到它應該重定向到的站點,但是它沒有使用我的證書,而是使用我重定向到的站點的證書。
配置:
server { listen 80; server_name example.com; return 301 https://$server_name:443; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.com; ssl_certificate /path/to/cert.crt; ssl_certificate_key /path/to/key.key; location { proxy_pass https://another-site.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
就像我說的,這可行,但它不使用我在此配置中指定的證書。
我認為您必須在其中放入更多配置
像
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.com; ssl on; ssl_certificate /path/to/cert.crt; ssl_certificate_key /path/to/key.key; keepalive_timeout 50; ssl_session_timeout 10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:AES128-SHA:AES256-SHA:AES; #Check ciphers at http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ciphers ssl_prefer_server_ciphers on; ssl_dhparam /etc/nginx/dhparams_4096.pem; check dhparams at nginx documentation ssl_session_cache shared:ssl_session_cache:20m;
}