专注 K8S研究
分类: 系统运维
2018-12-07 17:21:54
nginx 是否支持将http请求转发为https支持ssl双向认证,网上没什么用例可以参考,查询各大开发运维社区了下有几种说法
N多种方法,按照以上支持的小伙伴的说法,一种种去尝试(虽然发现各种不合理,完全没有涉及到客户端密钥对的使用的说法的),但是还是坚定的一种种去尝试了,做法都围绕着以下几个关键
然而我发现,上面说的都不是做为支持SSL双向认证的正向代理
以上的做法是请求重定向,并没有起到多大作用
listen443 ssl;
ssl_certificate
ssl_certificate_key
此类配置是Ngnix配置一个https server,证书密钥对配置的是服务端的证书,并不是作为客户端代理的配置
ssl_client_certificateon;
ssl_client_certificateca.cer;
此类配置的是Nginx的https server要求进水SSL客户证书认证,也就算此服务要求进行SSL双向认证,ca.cer是签发客户证书的CA证书,用来验证客户证书。
proxy_pass
proxy_pass 这个是代理配置项是正确的做法,然而网上并没有相关ssl双向认证的使用用例
没有相关使用案例就自己上官方文档发掘,查看ngx_http_proxy_module的相关配置
发现以下配置项目
毫无疑问这个就是我们要寻找的配置内容,配置客户端证书密钥对的配置项目,在本地开启一个要求进行ssl双向认证的的https server,生成好相关证书和密钥,进行测试
有正确返回,测试成功