用keytool製做證書並在tomcat配置https服務(一)html
用keytool製做證書並在tomcat配置https服務(三)瀏覽器
用keytool製做證書並在tomcat配置https服務(四)tomcat
雙向認證:併發
咱們上邊生成了服務端證書,併發送給客戶端進行了驗證。spa
雙向認證是雙向的,所以還差客戶端證書。code
1.爲方便導入瀏覽器,生成p12格式的密鑰庫。server
keytool -genkey -alias client -keypass 123456 -keyalg RSA -keysize 2048 -validity 365 -storetype PKCS12 -keystore D:/ssl/client.p12 -storepass 123456
跟以前生成服務端證書差很少xml
而後能夠看一下證書庫裏的密鑰對htm
keytool -list -v -storetype PKCS12 -keystore D:/ssl/client.p12
爲了可以使服務端可以信任客戶端證書,咱們須要把證書導出來,而後發送給服務端,並添加到服務端的密鑰庫裏,進行信任。blog
2.導出客戶端證書。
keytool -export -alias client -keystore D:/ssl/client.p12 -storetype PKCS12 -keypass 123456 -file D:/ssl/client.cer
能夠看一下證書信息是否是和客戶端庫裏相同。下邊的指令若是加上「-rfc」,那麼就會打印出證書串。
keytool -printcert -file D:/ssl/client.cer
3.把客戶端證書添加到服務端的密鑰庫中並添加信任。
keytool -import -alias client -v -file D:/ssl/client.cer -keystore D:/ssl/keystore.jks -storepass 123456
而後用如下指令查看就會看到服務端證書裏邊有了客戶單證書信息。
keytool -list -v -keystore D:/ssl/keystore.jks
4.而後把客戶端的密鑰庫client.p12導入到瀏覽器的證書管理中,放到我的下。【重要】若是你不導入這個文件是訪問不到的。
將tomcat的server.xml中https配置參數clientAuth="false"改爲true,雙向認證。否則仍是單向認證的,沒有意義。
而後啓動tomcat訪問