1.通过http协议调用,是不安全的,标准端口为80,在OSI网络模型中,工作于应用层,对传输数据不进行加密,无需配备证书。
2.通过https协议调用,是安全的,标准端口为443,在OSI网络模型中,工作于应用层,对传输数据进行加密,需要CA机构wosign的颁发的SSL证书。
在实践中通过https协议调用,其中需要携带证书访问服务器,证书的格式转化或者提取秘钥可能用到工具openssl。
查看原有系统是否安装openssl
openssl version -a
证书转化的应用如下:
1.p12格式转化成pem格式,这里面包含证书和钥匙(格式转化时,需要输入证书的提取密码)
openssl pkcs12 -in cert.p12 -out bea.pem -nodes
2.仅提取证书(所有证书)
openssl pkcs12 -in cert.p12 -nokeys -out bea.pem
openssl pkcs12 -in server.p12 -password pass:111111 -nokeys -out cert.pem
3.仅提取server证书(提取证书时需要输入密码)
openssl pkcs12 -in cert.p12 -nokeys -clcerts -out bea.pem
openssl pkcs12 -in cert.p12 -password pass:111111 -nokeys -clcerts -out cert.pem
4.仅提取ca证书(提取证书时需要输入密码)
openssl pkcs12 -in cert.p12 -nokeys -cacerts -out bea.pem
openssl pkcs12 -in cert.p12 -password pass:111111 -nokeys -cacerts -out cert.pem
5.提取私钥(不加密-nodes)
openssl pkcs12 -in cert.p12 -nocerts -nodes -out bea.key
openssl pkcs12 -in cert.p12 -password pass:111111 -passout pass:111111 -nocerts -out key.pem
在nginx.conf的配置如下:
location / {
······
proxy_pass https://back.example.com;#代理服务器https访问
#访问后端需要携带证书,必须是pem格式
proxy_ssl_certificate /usr/local/nginx/conf/cert/bea.pem #配置证书
proxy_ssl_certificate_key /usr/local/nginx/conf/cert/bea.key #配置密钥
······
}