為了確保訪問安全性,大部分Web系統往往會考慮開啟HTTPS訪問方式,而Tomcat作為做常用的Web應用服務器,其HTTPS該如何開啟呢?
在tomcat中配置HTTPS訪問方式,存在兩種證書驗證情況:
- 單向驗證
- 雙向驗證
1、HTTPS單向認證
服務器端會提供一個公開的公鑰,每一個訪問此服務器的客戶端都可以獲得這個公鑰,此公鑰被加密后,服務器端可以進行解密處理,之后驗證是否配對。
配置
在此次配置中用的是openssl自制證書,證書可以從專業機構進行購買,本文因為學習采用自制證書
(1)進入tomcat目錄,編輯server.xml
找到端口號為433的配置段,433是訪問HTTPS的端口號添加如下內容
<Connector port="443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" schema="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="srv/ftp/cas/server/server.p12" keystoreType="pkcs12" keystorePass="sheng123" />
(2)此時啟動tomcat也進行https地址的訪問
發現帶有https的端口無法訪問tomcat
(3)需要把CA的根證書導入瀏覽器
把Liunx服務器中的證書下載入本地,并且導入到瀏覽器
把根證書導入瀏覽器
2、tomcat雙向認證
在安全要求較高的網上銀行等網站的開發當中,采取雙向驗證,在單項驗證的基礎上,服務器端對客戶端的證書驗證,比如在實際生活中,銀行會給一個"K寶"里面被儲存的是證書,兩向驗證操作成功,才可以成功傳遞請求等信息。
(1)更改server.xml文件(443端口)
<Connector port="443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="true" sslProtocol="TLS" keystoreFile="/srv/ftp/cas/server/server.p12"keystoreType="pkcs12" keystorePass="sheng123" truststoreFile="/usr/local/tomcat/ca-trust.p12 truststoreType="jks"truststorePass="sheng123"/>
(2)此時啟動tomcat也進行https地址的訪問
發現帶有https的端口無法訪問tomcat,因為未導入客戶端證書而無法訪問
(3)在客戶端瀏覽器添加證書
從LIUNX下載出已經申請好的客戶端證書
導入客戶端瀏覽器中
點擊確認
(4)訪問成功