nginx配置将http请求转发支持ssl双向认证https请求的正向代理
来源:互联网 发布:免费分析软件 编辑:程序博客网 时间:2024/05/21 22:28
一、引言
nginx 是否支持将http请求转发为https支持ssl双向认证,网上没什么用例可以参考,查询各大开发运维社区了下有几种说法
- 支持:
- 不支持:
- 不清楚家祭不忘告乃翁:
https://www.bjornjohansen.no/redirect-to-https-with-nginx
N多种方法,按照以上支持的小伙伴的说法,一种种去尝试(虽然发现各种不合理,完全没有涉及到客户端密钥对的使用的说法的),但是还是坚定的一种种去尝试了,做法都围绕着以下几个关键
- retrun 301
- rewrite
- listen 443 ssl;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key; - proxy_pass https://
host request_uri
然而我发现,上面说的都不是做为支持SSL双向认证的正向代理
- retrun 301
- rewrite
以上的做法是请求重定向,并没有起到多大作用
listen 443 ssl;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;此类配置是Ngnix配置一个https server,证书密钥对配置的是服务端的证书,并不是作为客户端代理的配置
ssl_client_certificate on;
ssl_client_certificate ca.cer;此类配置的是Nginx的https server要求进水SSL客户证书认证,也就算此服务要求进行SSL双向认证,ca.cer是签发客户证书的CA证书,用来验证客户证书。
proxy_pass https://
host request_uri
proxy_pass 这个是代理配置项是正确的做法,然而网上并没有相关ssl双向认证的使用用例
二、发掘官方文档
没有相关使用案例就自己上官方文档发掘,查看ngx_http_proxy_module的相关配置
http://nginx.org/en/docs/http/ngx_http_proxy_module.html
发现以下配置项目
- proxy_ssl_certificate
- proxy_ssl_certificate_key
毫无疑问这个就是我们要寻找的配置内容,配置客户端证书密钥对的配置项目,在本地开启一个要求进行ssl双向认证的的https server,生成好相关证书和密钥,进行测试
server { listen 0.0.0.0:9999; #server_name localhost; access_log off; 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_redirect off; proxy_ssl_certificate certs/client.cer; proxy_ssl_certificate_key certs/client.key; proxy_pass https://127.0.0.1:8443$request_uri; } }
三、测试用例
curl -d 'params=aaa' http://127.0.0.1:9999/index.json
有正确返回,测试成功
- nginx配置将http请求转发支持ssl双向认证https请求的正向代理
- nginx配置将http请求转发支持ssl双向认证https请求的正向代理
- nginx 将http请求转发到https请求
- nginx 将http请求转发到https请求
- APACHE配置SSL【使用代理转发/请求分别走HTTP和HTTPS】
- nginx配置正向代理支持HTTPS
- Aandroid中https请求的双向认证
- nginx 反向代理web应用将https请求转成http请求时,必须注意事项
- nginx配置ssl加密(单/双向认证、部分https)
- Nginx配置ssl加密(单双向认证、部分https)
- nginx配置ssl加密(单双向认证、部分https)
- 自签SSL证书实现Nginx配置https双向认证
- Nginx配置ssl加密(单双向认证、部分https)
- nginx配置ssl加密(单双向认证、部分https)
- https(双向认证)流程 ssl协议理解, nginx https双向认证配置
- Aandroid中https请求的单向认证和双向认证
- android中https请求的单向认证和双向认证
- 使用Volley实现Https请求, Volley SSL 双向自认证证书请求。
- 解决:cropit插件无法缩小裁剪图片占用空间
- js实现上传图片实时预览
- Mysql中文查不到数据的问题
- 欢迎使用CSDN-markdown编辑器
- 【转载】【php】获取目录中的所有文件名
- nginx配置将http请求转发支持ssl双向认证https请求的正向代理
- Redis集群搭建与使用
- Java多线程编程
- 动态规划-jobdu 1112-最长下降子序列
- netstat 中state详解
- Java注释@interface的用法
- android gradle两种多渠道打包方式
- LDPC 填 3D NAND 出错率的坑
- 一次性删除Mysql数据库中所有表的数据,保留表结构