引言
最近项目需要对某项目相关渠道提供api接口调用。基于数据传输过程安全性与逼格的考虑,决定接口对接支持https方式请求。
下面简单记录一下配置过程以及过程中的Keng,备忘。
基础
一、什么是SSL(证书),什么是HTTPS?
SSL 证书是一种数字证书,它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道,从而实现:
1、数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全性,不可被第三方窃听;
2、用户可以通过服务器证书验证他所访问的网站是否真实可靠。
HTTPS 是以安全为目标的 HTTP 通道,即 HTTP 下加入 SSL 加密层。HTTPS 不同于 HTTP 的端口,HTTP默认端口为80,HTTPS默认端口为443。
二、参考阅读:
配置
一、安装OpenSSL
获取openssl并安装
#wget获取OpenSSL文件 wget http://www.openssl.org/source/openssl-1.0.2.tar.gz#解压文件 tar zxf openssl-1.0.2.tar.gz #编译 make #安装 make install
二、生成不被浏览器信任的SSL证书
#进入指定的自定义目录cd /data/config/mkdir certcd cert############################################# ## 颁发SSL证书 ## ##############################################1.生成RSA秘钥openssl genrsa -des3 -out roseone.key 1024#2.基于秘钥文件生成无需密码的秘钥文件openssl rsa -in roseone.key -out roseone_nopass.key#3.基于秘钥文件,生成ssl证书请求文件openssl req -new roseone.key -out roseone.csr#4.签发ssl证书(未经认证的证书不受浏览器信任,其功能性可以正常使用)openssl x509 -req -days 365 -in roseone.csr -signkey roseone.key -out roseone.crt
三、修改Nginx配置
#进入配置文件目录cd /data/config/#配置nginx.conf 或引入的文件(我本地的为在nginx.conf中import的nginx-proxy.conf)vi nginx-proxy.confserver { listen 80; listen 443 ssl; server_name demo.xiaoqingdiao.net; ssl_certificate /data/config/cert/roseone.crt; ssl_certificate_key /data/config/cert/roseone_nopass.key; #... #... 其他无关配置 #... }#最后重启nginxnginx -s reloadservice nginx statusrunning ............
四、访问效果及温馨小提示
因未证书为自己生成的,未经过认证。所以,证书为不受浏览器信任的证书。需要用户手动选择“继续访问”
继续访问效果
号外
温馨小提示:
如果用的是阿里云负载均衡,需要先将"阿里云"负载均衡监听443端口配置开放;
具体安装过程图示:
资讯:
————————————— UPDATE ———————————————
芝麻信用数据传输应用秘钥生成
$ openssl #进入OpenSSL 程序#生成私钥OpenSSL> genrsa -out rsa_private_key.pem 1024 #Java开发者需要将私钥转换成 PKCS8 格式OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out rsa_private_key_pkcs8.pem #生成公钥OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem # 退出 OpenSSL 程序OpenSSL> exit