起因: 之前讲微信小程序的课,在备课时发现微信小程序只能发送HTTPS和WebSocket网络请求,又查看了很多网上流行的各种微信小程序的教程,发现大部分都是使用假数据模拟,根本没有发送真正的网络请求(都是些大神,为什么不写呢?一脸疑惑),于是小弟甘当炮灰,身先士卒,誓要为广大前端开发者找寻出路……
(另:有对WebSocket感兴趣的同学们,可以联系我,同样有教程哦……)
终于,功夫不负有心人,成功的在Nginx服务器上搭建起了HTTPS的服务器,顺利实现微信小程序发送HTTPS的网络请求,获取后台数据;
废话不多说,先来看看,HTTPS是啥?
HTTPS经由超文本传输协议(HTTP)进行通信,但利用SSL/TLS来对数据包进行加密。 HTTPS开发的主要目的,是提供对网络服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。
其中尤为重要的就是,HTTPS在HTTP的基础上加入了SSL/TLS协议,依靠SSL证书来验证服务器的身份,并为客户端和服务器端之间建立“SSL加密通道”,确保用户数据在传输过程中处于加密状态,同时防止服务器被钓鱼网站假冒。 那么也就是说,我们要搭建HTTPS服务器,就要先拿到 ssl 证书,而这个证书我们可以自己生成,但是,但是,但是,自己的生成的证书,是无法获得浏览器信任的,自己和自己玩玩还行,一旦别人来访问你的网站,你就和 12306 一样了!
01.png这可真是个悲剧啊(当然这里这是给大家举个栗子,12306是有原因的,嘘……)
那么,我不是12306,如果别人来访问我的博客,突然先出来这么个玩意,那我就真杯具了……
所以,现在的重点就是我们如何去搞到一个能让浏览器信任的证书?
好,先来看看证书的种类:
DV域名型 https 证书(DVSSL):信任等级一般,只需验证网站的真实性便可颁发证书保护网站;
OV企业型 https 证书(OVSSL):信任等级强,须要验证企业的身份,审核严格,安全性更高;
EV增强型 https 证书(EVSSL):信任等级最高,一般用于银行证券等金融机构,审核严格,安全性最高
一般情况下,证书都是收费的,颁发证书的机构也有不少,但是对于我们个人用户来说,DV证书是比较合适的,当然,有免费的……
提供免费DV证书的国内比较不错的就是七牛和腾讯,都是一年有效期,其实一年足够了,到期后重新申请就可以了;
这里我就在腾讯给大家做个例子,七牛也是类似:
官方网址:SSL证书 - 腾讯云
如果我还在这里教大家如何登录注册腾讯云,那么明显是智商歧视,所以就不说了;
点击申请证书按钮,弹出选择框,就是这个样子的:
然后填写相应的信息
03.png紧接着就是让我们选择解析方式,我们这里选择手动DNS验证
04.png点击确认申请后,弹出提示框,点击查看证书详情,跳转到证书信息页面
05.png 06.png此时,腾讯会等待我们的DNS解析,打开我们的域名管理,按证书给我们的提示,在域名管理中添加CNAME解析记录
07.png解析完成后,一般证书就会给我颁发,一般不会超过5分钟;
08.png下载证书,上传至服务器;
注:因为我这里之前已经安装好Nginx,关于在Linux服务器下如何安装Nginx,我就不在详细说明,只告诉大家如何配置就好了,如果你还不知道如何在Linux服务器上安装Nginx,你可以联系我,也是有教程滴……
解压后,能得到三个文件夹,分别对应不同的服务器 我们这里是使用Nginx进行配置,所以我们就关注Nginx这个文件夹就好了:
09.png至此,我们已经拿到了证书;
接下来就是配置我们的Nginx服务器:
142 server {
143 listen 443;
144 ssl on;
145 server_name www.xiling.me;
146
147 ssl_certificate /usr/local/nginx1102/www.xiling.me/Nginx/1_www.xiling.me_bundle.crt;
149 ssl_certificate_key /usr/local/nginx1102/www.xiling.me/Nginx/2_www.xiling.me.key;
151
152 root /var/www/www.xiling.me;
153 index index.php index.html index.htm;
154 location ~ \.php$ {
155 fastcgi_pass 127.0.0.1:9000;
156 fastcgi_index index.php;
157 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
158 include fastcgi_params;
159 }
160 }
再来张图:
10.png重新加载 Nginx 配置文件
./sbin/nginx -s reload
此时打开你的浏览器访问:https://www.xiling.me
就可以看到,已经是https的安全连接了;
获取更多资料:
微信公众号:xilinglaoshi;
知乎专栏:西岭老湿;
今日头条:西岭老湿;
新浪微博:西岭老湿;
网友评论