nginx 带证书代理HTTPS

最近遇到这样的开发场景,与外部平台对接,对方的协议是https,并分有私有证书。而开发环境不能访问外网,若想访问外网只能通过一台允许连接外网的服务器转发请求。
1、安装nginx
首先在能连接外网的服务器安装nginx,服务器是Linux机器。
(1)安装基础支持包

yum -y install openssl openssl-devel

(2)安装ssl模块

(1)cd /home/nginx-1.10.2    
(2)./configure --with-http_ssl_module
(3)make
(4)make install

2、nginx配置
在nginx.conf同级目录下创建文件夹ssl,用来放置证书,把访问对方需要的证书上传到ssl文件夹下,若证书是pem或cer在nginx.conf加上证书即可;若证书是.p12的,则先把证书转换成.pem格式的证书,分别执行下面命令,其中xxx是自己的证书名称:

(1)openssl pkcs12 -in xxx.p12 -out xxx.pem -nodes
(2)openssl pkcs12 -nocerts -nodes -out xxx.key -in xxx.p12

修改nginx.conf文件:

location /xxx/ {
  proxy_ssl_certificate ssl/xxx.pem;
  proxy_ssl_certificate_key ssl/xxx.key;
  proxy_ssl_server_name on;
  proxy_pass https://xxxxxx.com/;
}

然后重新启动nginx,即可通过访问此台服务器/xxx路由访问到https://xxxxx.com/上。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容