今天遇到一个问题,记录下来,因为网上说的五花八门,记录下本身处理的方式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