以nginx为基础的后台服务,小程序提示非业务域名等常见第三方配置https的解决办法
前言
购买域名后,常用的都为http,但是小程序的硬性条件为https,那么就需要进行购买证书,本篇是从购买https证书到解决问题,注意你的后端部署云服务器是以nginx为基础
一、HTTPS是什么?
是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL
二、HTTPS证书如何购买?
1.HTTPS证书种类
DV证书:域名级别验证的证书:适合个人小型网站
OV证书:企业身份验证的证书:需要提交企业营业执照等企业有效资质。适合企事业单位。
EV证书:加强验证性证书:需要提交企业营业执照等企业有效资质,进行最严格的验证。
2.HTTPS证书类型
单域名:可以保护一个主域名或子域名。
通配符:保护一个主域名旗下任何自定义的二级域名。
多域名:多个不同的域名在一个证书的信任。
多域名通配符:可以保护多个域名的通配符在1个证书的服务。
3.如何购买
3.1.阿里云、腾讯云购买通配符
价高,好用,直接买一个通配符,无需担心二级域名问题
3.2 FREESSL购买
购买主页:https://freessl.cn,配合keymanager。你可以直接购买单域名即主域名加二级域名,三年期,两个也就在20块左右(两个为例)。
4.购买后如何使用
需要结合你的云服务器进行DNS解析,输入解析的CNAME及数值。数值验证成功后,便可颁发证书
三、HTTPS证书使用场景
1.阿里云对象存储使用自定义域名
你只需要在阿里云oss对象存储,绑定域名,然后上传PCKS1或8,然后进行验证。验证成功后,便可以使用自定义域名。
2.微信小程序配置业务域名
你需要在小程序管理后台-配置业务域名中,下载12fvf.txt文件。然后,将该文件部署到你的云服务器根目录下。其实这个域名根目录是你自己创建的。
然后。你现在需要做的是找到nginx.conf文件。然后,进行相应的配置,配置如下:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events { worker_connections 1024; }
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
# 同时支持HTTP
listen 80;
# 监听ssl 443端口
listen 443ssl;
server_name 你的域名;
# 指定 ssl 证书路径
ssl_certificate .......;
# 指定私钥文件路径
ssl_certificate_key ......;
# ssl验证相关配置
# 配置会话超时时间
ssl_session_timeout 10m;
# 配置SSL协议版本 # 配置SSL加密算法
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# 配置SSL加密算法
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
# 优先采取服务器算法
ssl_prefer_server_ciphers on;
# 配置共享会话缓存大小
ssl_session_cache shared:SSL:10m;
##业务域名配置
location /12fvf.txt{
alias /usr/local/zip/12fvf.txt;
}
}
3.链接指向HTTPS
同样是在nginx中进行相应的配置;建议最好是另去一个名字,要不然官网咋办,因为苹果证书申请是,必须是www.xxxx.com。要不然不容易通过。依旧放置在server{}中
location / 你的链接名{
#设置代理服务访问地址
proxy_pass http://主机名:端口号;
# 设置客户端真实的域名(包括端口号)
proxy_set_header Host 主机对外IP:端口号;
# 设置客户端真实IP
proxy_set_header X-Real-IP $remote_addr;
# 设置在多层代理时会包含真实客户端及中间每个代理服务器的IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 设置客户端真实的协议(http还是https)
proxy_set_header X-Forwarded-Proto https;
index index.html index.htm;
}
}
五、总结
记得nginx文件配置后,要进行验证;验证成功后,记得重启nginx。