天天看點

為tomcat配置https

  這裡我們使用是阿裡雲的雲伺服器ECS,使用的是阿裡雲的SSL證書來給伺服器配置https。

  https的預設端口是443。而我們也常常看見8443端口。其實二者的差別在于8443端口在通路時需要加端口号,相當于http的8080,不可通過域名直接通路。而443端口在通路時不需要加端口号,相當于http的80,可通過域名直接通路。

  預設端口為443不代表着其他端口不能配置https。 有時候我們不僅需要為前端tomcat伺服器配置https,而且需要為後端伺服器配置https。因為使用了https域名的前端頁面,頁面内将不能發送http請求。是以我們需要為後端端口配置https。

HTTPS的頁面發送不了HTTP請求?——關于混合内容(文章連結)

下面我們就介紹如何為tomcat配置https:

①為tomcat配置https。

②為springboot的内置tomcat配置https。(詳情連結)

1.1 在阿裡雲控制台中,搜尋 ssl 證書。可以申請免費型DV SSL證書,在證書申請時填入需要配置https的域名。

為tomcat配置https

1.2 下載下傳SSL證書(tomcat型),下載下傳的壓縮包裡包含一個pfx檔案(不要打開和修改) 和一個txt檔案。pfx檔案為證書檔案,txt檔案中内容為證書密鑰。

為tomcat配置https

1.3 在tomcat的安裝路徑下建立一個cert檔案(與bin、webapps檔案夾同級)。

将pfx檔案放入其中。

為tomcat配置https

1.4 修改tomcat的server.xml檔案,新添端口443作為https端口。而我們一般使用80作為http端口。

<Connector port="443"
	protocol="org.apache.coyote.http11.Http11NioProtocol"
	SSLEnabled="true"
	scheme="https"
	secure="true"
	keystoreFile="/usr/tomcat/apache-tomcat-8.5.40/cert/2119113_www.****.pfx"	
	keystoreType="PKCS12"
	keystorePass="*****"     
	clientAuth="false"
    SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
    ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
           
  • keystoreFile :為證書檔案根路徑 (沒親測過相對于tomcat的根路徑)
  • keystorePass :證書密鑰

  因為使用了443作為https端口,是以将server.xml中所有8433端口更改為443端口。比如:

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000"
	redirectPort="443" />
           

1.5 在tomcat的web.xml中填寫如下代碼:

<login-config>
	<auth-method>CLIENT-CERT</auth-method>
	<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<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配置https

1.6重新開機 tomcat,即可。還有很重要的一點是,設定https的端口不能被其他程序占用,且該端口對外開放(防火牆)

繼續閱讀