前言
最近打算写一款小程序,然后去小程序开发平台填写request合法域名,发现只支持https协议
于是尝试去把HTTP转换成HTTPS,首先说一下我的配置:
- 阿里云服务器
- 操作系统:CentOS 7.4 64位
- Web服务器:Tomcat 9.+
详解
主要分为三个步骤:
- 服务器配置域名,并备案
- 购买SSL证书,下载证书
- 上传并配置到服务器上
1.服务器配置域名,并备案
小程序不支持添加IP地址,必须是合法域名 ,所以需要我们去给购买域名并备案 , 具体方法我就说了, 网上很多。
2.购买SSL证书并下载
腾讯云,阿里云等平台有免费的证书,大家可以直接去申请一下
阿里云地址:https://www.aliyun.com/produc...
选择免费的SSL证书,并绑定你的域名地址等待审核就好了,审核时间很快,成功后会提示你证书已签发。
然后我们点击下载:
选择对应的服务器下载:
我下载的是Tomcat服务器证书,并解压
里面包含了PFX格式证书文件和TXT格式密码文件, 需要注意的是每次下载都会有新的pfx-password ,是一一对应的。
3.上传并配置到服务器上
tomcat服务器中新建cert文件夹,并上传刚才下载的证书
打开Tomcat/conf/server.xml,在server.xml文件中找到以下参数并进行修改
(1).
<Connector port="80" protocol="HTTP/1.1" #端口可更改
connectionTimeout="20000"
maxHttpHeaderSize="8192"
redirectPort="443" /> #将redirectPort修改为SSL默认端口443,让HTTPS请求转发到443端口。
(2).
找到一下参数:
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="cert/keystore.pfx"
certificateKeystorePassword="XXXXXXX"
certificateKeystoreType="PKCS12" />
把上面配置更改为:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxHttpHeaderSize="8192"
URIEncoding="UTF-8"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate
certificateKeystoreFile="/usr/local/apache-tomcat-9.0.22/cert/yourname.pfx" #你的证书路径
certificateKeystorePassword="证书密码" #你的证书密码
certificateKeystoreType="PKCS12"
/>
</SSLHostConfig>
</Connector>
主要添加你的证书路径和证书密码
(3).
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
#找到以上参数,去掉<!- - 和 - ->这对注释符并修改为如下参数:
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" /> #将redirectPort修改为443,让HTTPS请求转发到443端口。
(4).在server.xml文件最底部添加以下内容,实现HTTP自动跳转为HTTPS
<security-constraint>
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
最后保存文件修改,重启tomcat就可以了
希望对大家有所帮助!
大家可以关注我的微信公众号:「秦子帅」一个有质量、有态度的公众号!
本文由博客一文多发平台 OpenWrite 发布!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。