http站点转https站点的教程网上有很多,这里我先谈谈自己遇到的坑。
首先我用的是阿里云服务器。站点是http,最近在接触微信小程序wx.request接口时,发现站点必须是https。求学心切,立马踏上了不归之路。
网上看到的第一篇博客:http://blog.chinaunix.net/uid-28559065-id-3489955.html按照文章内容,成功的生成了证书,可文章中并没有介绍如何使用该证书 .
在网上再找了一篇博客:http://blog.csdn.net/gane_cheng/article/details/53001846在文章后面介绍如何使用证书,同时也介绍到自己生成的证书存在的问题:
1. 网站上有危险标识,
2.部分非https的javascript不能加载,
3.移动端打开空白页面。
证书,我选择的是阿里云盾的证书(https://www.aliyun.com/product/cas),突入眼帘的是4000RMB。不要被价格吓到,专业版OV SSL 旁边有一个 免费型DV SSL可供选择。
购买后补全信息的流程,网上是有教程的(http://www.chinaz.com/web/2017/0105/639110.shtml此篇博客的第七点,我没有用上)
补全信息的过程中主要有三点需要注意 :
1.请选择 文件认证,
2.请选择CSR自动生成 ,
3.信息补全后一定要按照要求把验证文件上传到服务器。
大概一天时间内,证书状态会从“审核中”更新为“已签发”。 操作中选择下载,并根据提示完成操作。
我选择的是tomcat,在操作的过程中,JKS证书按照这步没有做。
需要注意的是:文档中很明确的提示“不要直接拷贝所有配置,只需添加 keystoreFile,keystorePass等参数即可,其它参数请根据自己的实际情况修改” (我就是全部copy的,导致后面一直访问不通)。
一切配好后,感觉是不是要over了。错!这才是恶梦的开始。
首先是端口问题,访问是需要添加8443的端口。正常的域名是不建议添加端口,而且微信小程序api文档中也明确要求不能带端口。
查阅相关文档后发现https默认端口是443,tomcat为了区分才改成8443。知道这点后便很好解决。在server.xml中修改端口后便正常了。(http默认端口是80)
本以为万事大吉,却发现从百度搜索关键字,点击后不能正常显示页面,而是空白页面(心瞬间凉了一截)。网上找了一篇关于 http 跳转 https的博客,完美解决问题。http://blog.csdn.net/bao19901210/article/details/8768362
在原来的基础上主要修改了 redirectPort 改为443 ; keystoreFile 和 keystorePass就填自己的 port为443;
[html]view plaincopy
connectionTimeout="20000"
redirectPort="443"URIEncoding="UTF-8"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/css,application/javascript,text/plain"/>
[html]view plaincopy
maxThreads="150"SSLEnabled="true"scheme="https"secure="true"
clientAuth="false"sslProtocol="TLS"
keystoreFile=".pfx"
keystoreType="PKCS12"
keystorePass=""/>
阿里官网快速入门文档:https://help.aliyun.com/document_detail/28549.html?spm=5176.doc28550.6.553.MDDfx6