最近遇到这样的开发场景,与外部平台对接,对方的协议是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/上。