一、首先為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"那里,把注釋去掉並修改


2.導入tomcat.cer,將證書添加到“受信任的根證書頒發機構”
如果安裝證書之前瀏覽器處於打開狀態,需要重啟瀏覽器。
八、我們可以訪問服務器測試一下
本次會話已經實現SSL雙向認證。
附錄:keytool工具使用方法