在nginx配置代理,使用SSL证书,从外部可以访问443端口,显示证书有效, 其它端口均显示证书无效
时间: 2024-10-12 20:13:06 浏览: 31
当你在Nginx中配置代理并启用SSL/TLS连接时,如果想让443端口显示有效的SSL证书,而其他端口提示证书无效,关键在于Nginx的`server`块设置和HTTPS监听部分。
首先,你需要确保你已经有一个合适的SSL证书文件,通常包括公钥.pem和私钥.key,以及对应的CA根证书.crt。然后在Nginx的配置文件中(如/etc/nginx/nginx.conf 或者 sites-available/your_domain.conf),设置如下:
```nginx
server {
listen 443 ssl;
server_name your_domain.com;
# SSL相关配置
ssl_certificate /path/to/your/certificate.pem;
ssl_certificate_key /path/to/your/private/key.pem;
ssl_protocols TLSv1.2 TLSv1.3; # 确保只支持安全协议
ssl_ciphers HIGH:SECURE; # 设置加密套件
location / { # 此处代表你的前端代理路径
proxy_pass http://backend_server:port; # 将请求转发到后台服务器
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# 对于非https的端口(例如80)
server {
listen 80;
server_name your_domain.com;
return 301 https://$host$request_uri; # 永久重定向到HTTPS
}
```
在这个例子中,443端口的请求会经过SSL处理,并显示正确的证书;而80端口则会引导用户通过永久重定向到HTTPS,此时浏览器会自动使用443的证书,因为它们是链式信任的。
阅读全文