背景说明
- 公司申请了小程序,需要自建小程序商城,但是发现微信要求小程序的地址必须要使用域名&https访问。
- 目前公司只有一个域名,但是未申请https,所以重点说明在于http->https切换
专业名词解释及说明
名词 | 说明 |
http&https | http端口为80,https端口为443 |
SSL(Secure Sockets Layer) | 中文名「安全套接层」,是一种协议,为了解决HTTP明文传输可能会被偷窥和修改,「网景」公司设计的一种安全协议,使用「公钥加密」 |
TLS(Transport Layer Security) | 中文名「传输层安全协议」,IETF 1999年把 SSL 标准化。标准化之后的名称改为 TLS |
对称密钥加密(私钥加密) | 又名「私钥加密」,信息的发送者与信息的接收者共用一个密钥 |
非对称密钥加密(公钥加密) | 又名「公钥加密」,信息的发送者使用公钥进行加密,信息的接收者使用私钥进行解密 |
操作步骤
- 准备好必要的服务清单
- 一台ecs服务器,开通了80及443端口
- 一个已经在公安部备案的域名
- 一个nginx部署完成的服务(先保证80端口已经是可以访问的)
- 腾讯云申请SSL证书(可申请免费一年的),审核完成后下载证书(腾讯云地址:登录 - 腾讯云)
- 本文服务部署使用的是nginx部署,所以需要把nginx目录下的2个SSL证书上传服务器
scp 1_xxxxx_bundle.crt root@xxxx:/etc/nginx/cert
- 修改nginx配置,新增SSL配置
server {
listen 443 ssl;
server_name xxxx;
ssl_certificate /etc/nginx/cert/1_xxx_bundle.crt;
ssl_certificate_key /etc/nginx/cert/2_xxx.cn.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 30m;
ssl_ciphers ECDHE-RSA-AES128-GCM- SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://172.16.4.92:9075/;
}
}
结果
使用https可以正常访问