下載tomcat9
wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz
1.打開Tomcat/conf/server.xml董济,在server.xml文件中找到以下參數(shù)并進行修改泽疆。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
#找到以上參數(shù),去掉<!- - 和 - ->這對注釋符并修改為如下參數(shù)钦铁,對HTTPS默認端口進行配置:
<Connector port="80" protocol="HTTP/1.1" #將Connector port修改為80软舌。
connectionTimeout="20000"
redirectPort="443" /> #將redirectPort修改為SSL默認端口443,讓HTTPS請求轉發(fā)到443端口牛曹。
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="cert/keystore.pfx"
certificateKeystorePassword="XXXXXXX"
certificateKeystoreType="PKCS12" />
#找到以上參數(shù)佛点,去掉<!- - 和 - ->這對注釋符并修改為如下參數(shù):
<Connector port="443" #將Tomcat中默認的HTTPS端口Connector port 8443修改為443。8443端口不可通過域名直接訪問、需要在域名后加上端口號超营;443端口是HTTPS的默認端口鸳玩,可通過域名直接訪問,無需在域名后加端口號演闭。
protocol="org.apache.coyote.http11.Http11NioProtocol" #server.xml文件中Connector port有兩種運行模式(NIO和APR)不跟,請選擇NIO模式(也就是protocol="org.apache.coyote.http11.Http11NioProtocol")這一段進行配置。
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/usr/local/tomcat/cert/證書域名.pfx" #此處certificateKeystoreFile代表證書文件的路徑船响,請用您證書的路徑+文件名替換證書域名.pfx躬拢,例如:certificateKeystoreFile="/usr/local/tomcat/cert/abc.com.pfx"
certificateKeystorePassword="證書密碼" #此處certificateKeystorePassword為SSL證書的密碼,請用您證書密碼文件pfx-password.txt中的密碼替換见间,例如:certificateKeystorePassword="bMNML1Df"
certificateKeystoreType="PKCS12" /> #證書類型為PFX格式時聊闯,certificateKeystoreType修改為PKCS12。
</SSLHostConfig>
</Connector>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
#找到以上參數(shù)米诉,去掉<!- - 和 - ->這對注釋符并修改為如下參數(shù):
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" /> #將redirectPort修改為443菱蔬,讓HTTPS請求轉發(fā)到443端口。
遇到問題
image.png
解決方案
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" secretRequired="" />
(可選步驟)在web.xml文件最底部添加以下內容史侣,實現(xiàn)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>
個人微信公眾,經常更新一些實用的干貨:
image.png