8以上一直多SSL。用7的趕緊升級。
centos6、Tomcat8.5.50、JDK1.8
1.下載。
https://tomcat.apache.org/download-80.cgi
cd /server/backup/software
# tar -zxvf apache-tomcat-8.5.50.tar.gz
# mv apache-tomcat-8.5.50 /usr/tomcat8.5.50
編輯配置文件,其他一樣。
二、配置SSL。此處不介紹lets encrpy,請查看另一篇:
這裏介紹Tomcat8配置多域名多SSL,8+以後支持了此配置,Tomcat7配置方式不一致,此處不贅述,只貼配置文件展示。
免費SSL獲取:https://freessl.cn
根據提示操作,會下載https://keymanager.org/#
繼續在瀏覽器點擊繼續:
點擊驗證,然後跳轉如下界面:
點擊保存到keymanager:
導出PKCS12,Rookie123
其他的按照提示一步一步操作,挺簡單的。
導出PFX格式證書後,上傳雲服務器。
/usr/tomcat8.5.50/cert
配置Tomcat配置文件:
將註釋的解開:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
#找到以上參數,去掉<!- - 和 - ->這對註釋符並修改爲如下參數,對HTTPS默認端口進行配置:
<Connector port="80" protocol="HTTP/1.1" #將Connector port修改爲80。
connectionTimeout="20000"
redirectPort="443" /> #將redirectPort修改爲SSL默認端口443,讓HTTPS請求轉發到443端口。
修改如下:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
找到備註釋的:
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
type="RSA" />
</SSLHostConfig>
</Connector>
-->
修改成:
證書密碼,就是你在keymanager裏面設置的如上方我寫的Rookie123,如果是阿里雲等,解壓縮後會有TXT證書密碼文件。
JKS type=RSA
<Connector port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/usr/local/tomcat/cert/證書域名.pfx"
certificateKeystorePassword="證書密碼"
certificateKeystoreType="PKCS12" />
</SSLHostConfig>
</Connector>
如果配置多域名多SSL:
<Connector port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true"
defaultSSLHostConfigName="localhost">
<SSLHostConfig hostName="localhost">
<Certificate certificateKeystoreFile="/usr/tomcat8.5.50/cert/t1-shidongvr-com-iis-1223225856.pfx"
certificateKeystorePassword="Rookie123"
certificateKeystoreType="PKCS12" />
</SSLHostConfig>
<SSLHostConfig hostName="t2.shidongvr.com">
<Certificate certificateKeystoreFile="/usr/tomcat8.5.50/cert/t2-shidongvr-com-iis-1223225447.pfx"
certificateKeystorePassword="Rookie123"
certificateKeystoreType="PKCS12" />
</SSLHostConfig>
</Connector>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
#找到以上參數,去掉<!- - 和 - ->這對註釋符並修改爲如下參數:
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" /> #將redirectPort修改爲443,讓HTTPS請求轉發到443端口。
(可選步驟)在web.xml文件最底部添加以下內容,實現HTTP自動跳轉爲HTTPS。 (阿里)
此段摘自ali:
<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>
打開web.xml 在welcome-file-list標籤下添加:
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<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>
最後,驗證,瀏覽器訪問:
可以看到一把鎖子: