今天遇到一個問題,記錄下來,因爲網上說的五花八門,記錄下本身處理的方式html
需求主要是服務端http改https。java
tomcat作https,本身做了張證書,因爲其餘應用有經過httpclient訪問的接口,結果就出現異常windows
No subject alternative names presenttomcat
網上解決方式基本2種,證書作的時候不能用IP的方式,要使用域名的方式, 或者重寫一個驗證方法,等於繞過去。oracle
後來在stackOverFlow上看到一個哥們的帖子,在製做證書時候增長個參數ui
keytool -genkey -v -alias tomcat -keyalg RSA -keystore d:\tomcat.keystore -validity 3650 -ext san=ip:192.168.1.1htm
去oracle http://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html接口
能夠查到參數的說明 ,不過我看了也沒太看明白。ip
而後又報錯 PKIX path building failed... 域名
網上又是讓重寫方法 繞過去
仔細研究一下,緣由應該是客戶端須要驗證服務端的證書,因此須要作一張證書 加載到客戶端的JRE中
keytool -export -file d:\tomcat.crt -alias tomcat -keystore d:\tomcat.keystore
keytool -import -alias tomcat -file "D:\tomcat.crt" -keystore "D:\jdk1.7.0_51\jre\lib\security\cacerts" -storepass changeit