由于近几年微信小程序的盛行,大大降低了手机App的开发门槛,甚至很多个人开始开发自己的小程序。
但是拥有一个自己的小程序,不是做个小程序发布到微信那么简单,因为后端服务要求HTTPS安全连接。
那么问题来了,如果把网站转为HTTPS协议呢?除了你需要买域名和买服务器(可购买云服务器)外,还需要解决两个问题:申请域名SSL Cert证书和配置SSL服务。
下面我把自己的经验与大家分享一下:
- 第一步,申请Cert域名证书:
本人是在Godaddy网站购买的.app后缀域名,免费赠送SSL证书,所以这个直接简化了很多麻烦。
当然你也可以在别的第三方购买SSL证书。- 首先本地生成一个证书,用到了JDK的keytool:
# 生成.keystore文件
keytool -genkey -alias tomcat -keyalg RSA -keypass 111111 -storepass 111111 -keystore test.keystore
# 根据.keystore文件导出cer证书,Tomcat只需.keystore文件。
keytool -export -trustcacerts -alias tomcat -file server.cer -keystore test.keystore -storepass 12346- 使用自己申请的CA证书,来制作配置Tomcat,需要使用到openssl工具:
openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt -certfile ca_bundle.crt
keytool -importkeystore -srckeystore certificate.pfx -srcstorepass 111111 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks -deststorepass 123456- 配置Tomcat里的server.xml,Tomcat 8.5 以上版本支持 SNI ( 同IP可以安装多个证书 )
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="150"
SSLEnabled="true"
defaultSSLHostConfigName=“cherubim.app” >
<SSLHostConfig hostName="cherubim.app" >
<Certificate certificateKeystoreFile=“/www/cert/keystore.jks"
certificateKeystorePassword="123456"
type="RSA" />
</SSLHostConfig>
// 其他站点复制多个 SSLHostConfig
</Connector>大功告成,在浏览器打开https://你的域名:8443试下。
这里继续保留Tomcat的8443默认端口,是为了把HTTPS的443端口预留给Nginx的。
如果你的服务器只运行一个Tomcat服务器,可以直接把8443端口改为443,这样就可以直接这样访问:https://你的域名
版权声明:本文为tingjie原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。