前言
最近打算寫一款小程序,然後去小程序開發平臺填寫request合法域名,發現只支持https協議
於是嘗試去把HTTP轉換成HTTPS,首先說一下我的配置:
- 阿里雲服務器
- 操作系統:CentOS 7.4 64位
- Web服務器:Tomcat 9.+
詳解
主要分爲三個步驟:
- 服務器配置域名,並備案
- 購買SSL證書,下載證書
- 上傳並配置到服務器上
1.服務器配置域名,並備案
小程序不支持添加IP地址,必須是合法域名 ,所以需要我們去給購買域名並備案 , 具體方法我就說了, 網上很多。
2.購買SSL證書並下載
騰訊雲,阿里雲等平臺有免費的證書,大家可以直接去申請一下
阿里雲地址:https://www.aliyun.com/product/cas
選擇免費的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就可以了
希望對大家有所幫助!
大家可以關注我的微信公衆號:「秦子帥」一個有質量、有態度的公衆號!