nginx 正向代理 配置https 双向认证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 正向代理 配置https 双向认证相关的知识,希望对你有一定的参考价值。

参考技术A 项目中需要使用代理访问目标服务器,服务方只接受https请求,并且使用双向认证 经历了一番波折总算配置成功

现在讲配置过程记录下来。

首先是nginx 配置问题

查阅官方文档 

http://nginx.org/en/docs/http/ngx_http_proxy_module.html

以下两项配置https 客户端认证私钥与证书

proxy_ssl_certificate

proxy_ssl_certificate_key

以下项目配置代理转发地址

proxy_pass https://127.0.0.1:8443$request_uri;

配置文件

其中有一个坑在与配置代理转发地址时,如果不添加https:// 客户端请求的时候会报错,所以这里一定要写上。

上面这些都配置好后,代理就能正常使用了。

此外,证书问题可能有些人还会遇到问题,推荐的解决方案是在linux 下使用keytool+opensll 来进行证书转换,openssl需可能需要单独安装,具体方式可以问度娘。

以下提供从jks中获取pem格式证书和私钥的方法:

1、提取公钥:

切换到jks证书的存储路径,执行如下命令:keytool -list -rfc -keystore demo.jks -storepass demopwd

将证书内容完整复制,粘贴到文件中,保存为cer.pem

2、提取私钥

私钥无法直接提取,需要将jks进行转换

1)keytool -importkeystore -srckeystore dem.jks -destkeystore demo.p12 -srcstoretype jks -deststoretype pkcs12

2)openssl pkcs12 -nodes -in 10411004511201290.p12 -out demo.pem

vim demo.pem 

将-----BEGIN PRIVATE KEY-----  ……-----END PRIVATE KEY----- 之间内容(包含) 进行复制,粘贴到新文件中,保存名称为privateKey.pem 

或者可以直接执行第二个提取私钥操作 执行vim demo.pem  后可以看到证书和私钥,分别保存成两个pem文件即可。

以上是关于nginx 正向代理 配置https 双向认证的主要内容,如果未能解决你的问题,请参考以下文章

NGINX 配置 SSL 双向认证

[转帖]nginx配置ssl加密(单/双向认证部分https)

HTTPS双向加密认证

Nginx配置双向认证https+转发http的请求

TOMCAT配置HTTPS双向认证,为啥始终无法访问

nginx和iis下的SSL双向认证教程【ca 自签 ssl证书】