做微信小程序不得不面对的一个问题就是搭建微信小程序服务器,尤其现在的HTTPS。因为一直以来用的都是阿里的服务器,所以这次继续在阿里云上注册了域名和购买了云服务器ECS。(基于腾讯云搭建微信小程序服务器的朋友,朋友或许并不能帮助你太多!)
ECS的配置是弹性的,可以根据自己的需要来选择合理的配置,如果你是个初学者为了学习用的话,一开始选择最低配置就行了。
因为在小程序的生产环境中,为了安全考虑,调用服务器的REST API或WebSocket的话,服务器必须提供安全的链接地址(如https://mydomain/myservice, wss://mydomian),即需要使用SSL。所以我们需要为我们的服务器购买CA证书和域名。
在阿里云上注册域名还是很方便的,可以到https://wanwang.aliyun.com这个页面去注册一个。而CA证书,很多国内外机构都提供证书签发认证,国内的比如沃通,国外的如Symantec,这个证书还是有点贵的,根据证书的不同功能,价格也是相差很大,最便宜的也要好几百一年。现在也有免费的证书可以使用,比如Let's Encrypt。不过,阿里云上也提供了免费的证书,申请起来很方便,我们就来看看怎么申请阿里云里的免费证书。
从阿里云的页面顶部菜单“产品与服务”里面,可以看到“CA证书服务”:
进入页面后,点击页面右上角的“购买证书”按钮,进入证书选择界面:
在这里可以选择“免费型DV SSL”证书,这种证书购买一个证书只能对一个明细域名生效,也就是说如果你有几个子域名,如blog.mydomain.com, www.mydomain.com, shop.mydomain.com的话,你分别需要购买3个证书。购买完成后,可以在你购买的订单列表里,点击“补全”信息,输入要绑定这个证书的域名,以及你的个人详细信息等等,提交给签发机构审核,审核完成后,你之前填写的邮箱里也会收到一封如何设置的邮件(这个邮件主要是给域名不是在阿里云注册的用户的设置指南,如果域名在阿里云注册,则会自动对你的域名添加解析记录,不需要你手动去添加)。
然后,请在订单列表中,点击“下载”证书文件的按钮,下载证书文件,里面包含了一些对于不同http server用的证书,如apache, nginx, IIS等,它们用于配置你服务器上安装的http server。
我在ECS上安装的是CentOS,通过yum安装nginx:
然后把服务器证书上传到服务器上,接着配置nginx.conf文件(改配置文件在/etc/nginx目录下),使其支持https的url访问:
<span style="font-size: 14px;">server {<br/> listen 443 ssl http2 default_server;<br/> listen [::]:443 ssl http2 default_server;<br/> server_name _;<br/><br/> root /usr/share/nginx/html;<br/><br/> ssl on;<br/> ssl_certificate "xxxxxx.pem"; #你的证书文件中的pem文件<br/> ssl_certificate_key "xxxxxx.key"; #你的证书文件中的key文件<br/> ssl_session_timeout 5m;<br/> ssl_protocols TLSv1 TLSv1.1 TLSv1.2;<br/> ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;<br/> ssl_prefer_server_ciphers on;<br/><br/> include /etc/nginx/default.d/*.conf;<br/><br/> location / {<br/> }<br/> }<br/></span>
这样,你的http server就配置好了。接着,阿里云的域名解析控制台中,为你的域名添加一条A解析记录,将你的域名指向你的ECS服务器的公网IP地址,就行了。
然后,你就可以使用https开头的url来访问你的http服务啦!这只是一个简单的开始,还有很多服务器端开发和配置的东西在等着你!
以上就是本来在配置https微信小程序服务器时遇到的情况以及详细讲解!
如果大家在配置的过程中有任何问题,可以在这里我留言。
更多搭建微信小程序服务器(HTTPs)相关文章请关注PHP中文网!