nginx代理到https地址忽略证书验证配置,不推荐在生产环境中使用
在配置中增加:
- proxy_ssl_server_name on;
- proxy_ssl_session_reuse ;
nginx在与后端服务器建立ssl/tls连接时,将使用请求头中的host字段值作为sni的一部分,并且不会重用ssl/tls会话。这种配置可能在特定场景下是有用的,但通常建议保持proxy_ssl_session_reuse为on以提高性能。
location /test/ { proxy_pass https://www.baidu.com/; proxy_set_header x-forwarded-proto $scheme; proxy_set_header x-forwarded-port $server_port; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; proxy_set_header upgrade $http_upgrade; proxy_set_header connection "upgrade"; proxy_ssl_server_name on; proxy_ssl_session_reuse off; }
proxy_ssl_server_name
当proxy_ssl_server_name设置为on时,nginx会在与后端服务器建立ssl/tls连接时,使用请求头中的host字段值作为sni(server name indication)的一部分。sni是ssl/tls扩展,它允许客户端在握手过程中指示它想要连接的服务器的主机名。这对于那些托管在单个ip地址上的多个ssl/tls证书的后端服务器来说非常重要,因为sni允许服务器根据请求的主机名选择正确的证书。
如果proxy_ssl_server_name未设置或设置为off,nginx将不会使用host头部值作为sni的一部分,这可能会导致ssl/tls握手失败,特别是当后端服务器期望sni时。
proxy_ssl_session_reuse
proxy_ssl_session_reuse指令控制nginx是否重用与后端服务器之间的ssl/tls会话。当设置为off时,nginx不会在多个请求之间重用ssl/tls会话。这意味着每次nginx与后端服务器建立连接时,都会进行完整的ssl/tls握手过程,这可能会增加延迟和服务器负载。
相反,当proxy_ssl_session_reuse设置为on(这是默认值)时,nginx会尝试重用现有的ssl/tls会话,以减少握手次数并提高性能。
在某些情况下,可能想要禁用会话重用,例如,当后端服务器的ssl/tls证书频繁更改时,或者出于安全考虑希望每次请求都建立新的连接。
到此这篇关于nginx代理到https地址忽略证书验证配置的实现的文章就介绍到这了,更多相关nginx代理到https忽略证书内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论