一、目标
当你在制作小程序(或者app)的时候,如果使用http服务进行后端处理的话,个人在微信开发工具上进行调试和预览工作是可以完成的,但是经发布过后的小程序是无法访问到后端数据的,这是由于http服务不支持小程序访问,小程序在访问网站数据的时候,通常将进行Https服务认证,允许访问的https服务也需要在小程序开发网站上进行配置,那此时给你的域名配置https服务则是一件很关键的事情。
HTTP与HTTPS的区别:HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
二、步骤
由于我用的服务器来自于腾讯云,云上均有相关很详细的文章介绍,因此在此处不一一阐述,可参考相应链接,仅对SSL证书配置做详细阐述
(1)购买域名
(2)域名解析
(3)域名备案
腾讯云域名备案操作说明
温馨提示:备案需要经腾讯云官方和工信部审核,时间周期为20个工作日左右
(4)公安部信息认证
(5)SSL证书申请
腾讯云SSL证书申请操作说明
温馨提示:备案需要经腾讯云官方审核,时间周期为1个工作日左右
(6)SSL证书配置
①证书下载
在完成SSL证书申请过后,可以在腾讯云控制台上查看到证书情况,可选择下载,下载完过后是一个压缩包。
压缩包中含有Apache、Tomcat、IIS、Nginx等相关文件,由于我的网站需要支持的是Nginx服务,因此仅使用其中的Nginx文件夹,如下所示
打开文件夹,可以看到两个文件,后缀分别为crt和key
②文件上传
在服务器上找到Nginx服务配置文件nginx.conf所在的文件夹,可使用以下命令
find / -name nginx.conf
发现文件在/etc文件夹中,导航至该文件夹
cd /etc
在该文件夹下创建一个名为cert的文件夹
mkdir cert
将crt和key文件上传至cert文件夹中
③文件配置
利用vim编辑器打开nginx.conf,注意监听端口为443,而不是80
vim nginx.conf
在配置文件中输入以下命令
#Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
ssl_certificate "cert/xxx.crt"; #输入你的文件名
ssl_certificate_key "cert/xxx.key"; #输入你的文件名
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
client_max_body_size 200m;
proxy_pass http://127.0.0.1:5000;
proxy_redirect off;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
④重启nginx服务
由于更改了nginx服务,因此需要重置,命令如下
nginx -s reload
之后需要重启nginx服务
systemctl restart nginx
编写完毕后,保存退出:wq
恭喜你,到此,已实现域名的https服务,开启你的小程序之旅吧!