Linux配置Tomcat實現雙向SSL認證(使用keytool工具生成證書)


 一、首先為tomcat服務器生成證書(tomcat8.5)

keytool -genkey -v -alias tomcat -keystore tomcat.keystore -keyalg RSA -validity 180 -keysize 2048

 

 其中keystore password自己隨便設置即可。

What is your first and last name?必須是tomcat部署主機的域名或者IP[如:hxc.com 或者 192.168.1.6](就是你將來要在瀏覽器中輸入的訪問地址),否則瀏覽器會彈出警告窗口,提示用戶證書與所在域不匹配。在本地做開發測試時,應填入“localhost”。

二、生成客戶端證書

keytool -genkey -v -alias mykey -keystore mykey.p12 -storetype PKCS12 -keyalg RSA -validity 180 -keysize 2048

 

 

 其中內容隨便填即可。

三、讓服務器信任客戶端證書

1.由於是雙向SSL認證,服務器必須要信任客戶端證書,因此,必須把客戶端證書添加為服務器的信任認證。因不能直接將PKCS12格式的證書庫導入服務器證書庫,首先需要將客戶端證書導出為一個單獨的CER文件。

keytool -export  -alias mykey -keystore mykey.p12 -storetype PKCS12 -storepass 你設置的證書密鑰 -rfc -file mykey.cer

 

 2.然后將該文件導入到服務器證書中

keytool -import -v -file mykey.cer -keystore tomcat.keystore

 

 3.我們可以驗證一下是否成功將客戶端證書加入到服務器證書庫中

keytool -list -keystore tomcat.keystore

 

 四、讓客戶端信任服務器證書

由於是雙向SSL認證,客戶端也要驗證服務器證書,因此,必須把服務器證書添加到瀏覽的“受信任的根證書頒發機構”。由於不能直接將keystore格式的證書庫導入,這里需要把服務器證書導出為一個單獨的CER文件。

keytool -keystore tomcat.keystore -export -alias tomcat -file tomcat.cer

 

五、目前我們生成了如下四個文件,其中tomcat.keystore用於配置服務器,mykey.p12和tomcat.cer提供給客戶端進行證書導入

 

 六、配置tomcat服務器server.xml文件(tomcat根目錄的conf文件夾)

找到Connector port="8443"那里,把注釋去掉並修改

clientAuth:設置是否雙向驗證,默認為false,設置為true代表雙向驗證
keystoreFile:服務器證書文件路徑
keystorePass:服務器證書密碼
truststoreFile:用來驗證客戶端證書的根證書,此例中就是服務器證書
truststorePass:根證書密碼
配置完記得重啟tomcat服務器
 
注意:tomcat10修改的內容和8,9不一樣!

 

 

七、在客戶端導入證書
1.導入mykey.p12客戶端證書

 

 

 

 2.導入tomcat.cer,將證書添加到“受信任的根證書頒發機構”

 

 

 如果安裝證書之前瀏覽器處於打開狀態,需要重啟瀏覽器。

 八、我們可以訪問服務器測試一下

 

 本次會話已經實現SSL雙向認證。

 

 

 附錄:keytool工具使用方法

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM