一般来说访问一些自己的私有SSL服务器都会遇到SSL Exception,因为服务器证书不被信任。那么除了可以买一个公有证书外还有其它办法吗?如果你有对客户端的控制权的话,你可以自己生成一个证书,然后导入到客户端来使这个客户端信任这个证书。
至于Java可以怎么导入证书呢?
可以在虚拟机启动的时候告知证书的位置和密码:
java -Djavax.net.ssl.trustStore=/path/yourSelfSignedTruststore.jks -Djavax.net.ssl.trustStorePassword=yourPassword
我们知道-D参数是设置system的Property属性,然后其它类就可以通过system.getProperty()来拿到。
所以还有另一种方式,在你的应用main中刚启动的时候,设置system.setProperty(),如下:
Properties systemProps =