小程序正式上线服务器端是需要https支持的,购买云服务器好像可以支持一键配置,就省去了很多麻烦。
如果是https手动配置还是挺麻烦的,对于windows服务器,可以参考我之前做的:
使用集成环境完成配置后,运行时,网址是这样的:
[http://localhost/web/index.php?s=store/passport/login](http://localhost/web/index.php?s=store/passport/login)
(即便使用正式备案域名,也是http://www.XXX.com)
这是没法满足小程序https加密协议访问需求的。
想要域名支持https,就要服务器安装ssl证书。
网上流传的比较多的版本是,安装某国外证书,确实挺高大上的,借助工具还能自动续有效期,但是尝试过,申请确实需要门槛,英文表单,填起来比较费劲,Linux玩的6的可以,网上有命令,自动就给服务器申请、安装了,我玩windows比较多(屌丝),所以觉得阿里云、腾讯云的SSL证书还是比较靠谱的,最重要是免费 免费 免费。
下面开始搞(此处以阿里云为例,腾讯云操作类似):
1、登陆阿里云
![](https://box.kancloud.cn/377e79bb758eb942500900f4f45a22a4_763x720.png)
如图所示,找到ssl证书申请入口,点“立即购买”,然后大吃一斤
![](https://box.kancloud.cn/9ea0db090dab54369226ec59e1995986_1694x884.png)
这么贵,还玩个鸡毛。。。然鹅,当然有免费的了,只是阿里套路深,隐藏比较深,看下图
![](https://box.kancloud.cn/f3ad73e2b2b20e65790de2b66f5ebb3d_1220x683.png)
品牌这里选“Symantec”也就是赛门铁克(出卡巴斯基那个公司?)
![](https://box.kancloud.cn/45f33c7b9ec6a3d0111947c60f9c9e3d_1199x791.png)
然后点上面2那个位置,神奇的一幕出现了
![](https://box.kancloud.cn/70130a869083c31bd9a5692100db0164_1166x832.png)
![](https://box.kancloud.cn/15ac780e2b4649fa8a0a152d211a2a99_1615x849.png)
OK,点击“立即购买”免费申请吧,到支付那一步骤,会自动支付成功的。
2、证书申请提交以后,有一个补录信息,需要把你要保护的网站域名填写上,注意了,这个务必填写正确,一经提交无法修改,而且免费的证书一般不支持子域名。提交后,还需要阿里云后台审核,一般1个小时左右就会审核通过,生成证书。
3、证书签发后是这个状态
![](https://box.kancloud.cn/95f929b4f2eec55e5f785b3c2628d4e6_1853x335.png)
这时候,咱们需要点击“下载”,把证书下载到咱们的服务器,接受ssl的安全保护。
下载的时候,因为我的服务器是phpstudy下面的apache+php组合,所以我选择证书种类是
apache证书
![](https://box.kancloud.cn/c06530b2c5b728f79ed970ab0a1ec373_1403x837.png)
证书下载下来是一串数字的.zip压缩包,解压以后内容如下:
![](https://box.kancloud.cn/97fc1ed29416d74e29946903ea90671e_732x368.png)
然后根据阿里云证书配置指南,如下图的指示去操作
![](https://box.kancloud.cn/5baeb618db01a17308f1566c096d4e80_1607x794.png)
4、下面以phpstudy为例进行安装证书演示(# 良心操作啊,市面上见不到)
根据阿里云的证书安装指南:先建立cert目录
![](https://box.kancloud.cn/c0f2cebd4478b590fafc58a07ce11c4a_847x484.png)
然后把刚才解压出来的证书文件拷贝到这个目录下
接着打开apache下的conf目录下的
![](https://box.kancloud.cn/a90562f3a06715d691e391c86350a7d7_687x413.png)
推荐使用专业编辑器打开(比如:notepadd++),不建议使用记事本、写字板等打开,容易影响编码,导致配置文件加载失败
打开后,使用搜索功能,在全文搜索“
#LoadModule ssl\_module modules/mod\_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ssl.conf”
这两句配置文件
如果搜不到,记得把前面“#”去掉,因为可能配置文件默认已经把#去掉了,找到这个
![](https://box.kancloud.cn/2ede5398ef8937b190668f8f016b603c_972x443.png)
把前面#去掉,也就是把注释去掉,让这一行生效,调用extra目录下httpd-ssl.conf这个配置文件,这个文件才是真正配置证书的文件
5、打开httpd-ssl.conf后,对照着安装指南进一步操作,
首先:搜索这个协议支持配置 SSLProtocol all -SSLv2 -SSLv3,发现搜索不到,那就在空白处,把这一句粘贴上
其次:SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM这个发现也没有,OK,空白处继续加上
接着:SSLHonorCipherOrder on也没有,继续加上喽
然后:搜索SSLCertificateFile,发现这一个是有的,注意要修改前面不带#的哪一个
![](https://box.kancloud.cn/03085022a4ff8fb52f074d6d8245b0ba_814x416.png)
注意,按照阿里云证书安装指南,可能会报错,尝试多次发现,这个证书的路径,最好是绝对路径,而不是这种cert/public.pem相对路径
也就是:SSLCertificateFile "/Apache24/conf/server.crt" 要改成
SSLCertificateFile "D:/phpStudy/Apache/cert/public.pem"
然后:继续搜索SSLCertificateKeyFile
同样的,修改前面不带#哪一个
SSLCertificateKeyFile "/Apache24/conf/server.key"要改成
SSLCertificateKeyFile "D:/phpStudy/Apache/cert/214542853950366.key"
最后:搜索SSLCertificateChainFile,找到
#SSLCertificateChainFile "/Apache24/conf/server-ca.crt"
把前面#去掉,修改成:
SSLCertificateChainFile "D:/phpStudy/Apache/cert/chain.pem"
6、到此,证书安装就全部完成了,重启phpstudy的apache应该就可以运行ssl证书了,如果遇到启动失败,使用下面方法进行排查(良心之作,记得赞赏哦。。。)
打开cmd命令行,进行如下操作
![](https://box.kancloud.cn/0911aa2153840563347c53b1048cb274_919x578.png)
查看报错信息,根据报错信息,一步一步修改,继续运行,一般到最后都能正常使用。
OK,到此为止,你的服务器域名就支持https喽,可以愉快地玩耍小程序了。
对于自己的linux服务器,如果使用宝塔面板的话,申请完免费的证书后,按宝塔的指引上传证书文件就可以了,比较省心。