"No subject alternative names present" solved

来源:互联网 发布:淘宝详情页懒人模板 编辑:程序博客网 时间:2024/06/16 19:59

这个异常有可能是SAN (Subject alternative name) 与CN (Common Name)没设置好引起。

网上翻阅了许多资料,下面记录一下解决的方法。

1. 拿着Server 给的server.jks EXPORT对应的CER 然后generate 自己CLIENT SIDE 的JKS. (用的是JAVA8)

keytool -genkeypair -alias testingkey2 -keyalg RSA -validity 365 -keystore server.jks -ext SAN=dns:localhost,ip:127.0.0.1
keytool -list -v -keystore server.jks
keytool -export -alias testingkey2 -keystore server.jks -rfc -file testing.cer
keytool -import -alias testingkey2 -file testing.cer -keystore client.jks
keytool -list -v -keystore client.jks


2. 在JAVA代码中或者startup batch中输入下面的代码,用来读取相对应的KEY。.

  1. java -Djavax.net.ssl.trustStore=Client.jks -Djavax.net.ssl.trustStorePassword=password  

  1. Properties systemProps = System.getProperties();  
  2. systemProps.put( "javax.net.ssl.trustStore""Client.jks");  
  3. systemProps.put( "javax.net.ssl.trustStorePassword""password");  
  4. System.setProperties(systemProps);  


以上是常规方法。

还有另一种方法就是用X509TrustManager 来实现,具体可以查考下面链接:
http://www.cnblogs.com/devinzhang/archive/2012/02/28/2371631.html