一般需要对接银行的接口,都需要用前置机,在前置机上安装银行的客户端(CBS)。我们接口调用的实际是前置机上的http服务。
为了数据安全,一般会把前置机的网络和服务器的网络处理成同一个内网,防止数据被抓。
有的CBS的http服务可能支持https协议,为了通讯数据安全,那我们就需要在前置机上用一个代理服务器(使用https)来代理转发CBS的http服务。
这样,服务器与前置机之间的通信就是https协议了。
server {
#代理服务的端口(8888)一般使用443端口
listen 8888 ssl;
#证书文件
ssl_certificate D:/phpstudy_pro/Extensions/Nginx1.16.1/conf/ssl/anju-cbs.com.pem;
#密钥文件
ssl_certificate_key D:/phpstudy_pro/Extensions/Nginx1.16.1/conf/ssl/anju-cbs.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
server_name anju-cbs.com;
root "D:/phpstudy_pro/WWW/anju-cbs.com";
#用户密码认证(basic_auth)
auth_basic "authName";
auth_basic_user_file E:/rsa/cmbcbs/product/auth_pwd;
location / {
#IP白名单设置(租赁系统服务器内网IP)
allow 127.0.0.1; #这个是本地IP,用于本地验证,验证完可删掉
allow 172.xxx.xxx.xxx;
deny all;
#代理转发到端口(银行跳板机)
proxy_pass http://127.0.0.1:6666;
}
}
Ps:用户密码认证文件可以手动创建:新建一个不带后缀的文件里面的内容为用户名:密码(如:userName123:PWD@Abc123456),请求接口时带上curl_setopt($ch, CURLOPT_USERPWD, "userName123:PWD@Abc123456"); curl_setopt($ch,CURLOPT_HEADER, true);