开发者社区> 问答> 正文

同一个java web客户端需要访问两个以上不同的https形式的url时,如何设置客户端证书?

单台服务器要访问多个不同的https的时候,怎么办,例如A站点的证书是CertA,密码PasswdA
B站点的证书是CetB,密码为PasswdB,这个时候怎么调用,因为测试发现设置System.setProperty("javax.net.ssl.XXX")只有在第一次设置有效,之后无论怎么重新设置都会使用第一次的证书,现在问题会导致不同的HTTPS接口访问冲突,请问大神们,有什么解决办法吗?
网上查了下,说是用动态管理证书,不是很会,向大神们,请教!

展开
收起
落地花开啦 2016-06-02 10:32:16 3468 0
3 条回答
写回答
取消 提交回答
  • 专注物联网

    把这2个证书 import 到 JVM默认的 keystore中 即cacert中
    {JAVA_HOME}/jre/lib/security/cacerts. 理论上来说java 虚拟机会默认加载这个cacert的只要运行在这个jvm的应用程序 都会在这个key store 里面寻找可trust的证书,也就不用再代码里显示的声明 加载什么什么证书了。
    当然了 如果不放心 可以加上
    System.setProperty("javax.net.ssl.trustStore"," C:/Program Files/Java/jdk1.6.0_20/jre/lib/security/cacerts" );
    注: 这个 cacert的默认密码是changeit

    2019-07-17 19:24:10
    赞同 展开评论 打赏
  • 软件开发,安全加密

    把这2个证书 import 到 JVM默认的 keystore中 即cacert中
    {JAVA_HOME}/jre/lib/security/cacerts. 理论上来说java 虚拟机会默认加载这个cacert的只要运行在这个jvm的应用程序 都会在这个key store 里面寻找可trust的证书,也就不用再代码里显示的声明 加载什么什么证书了。
    当然了 如果不放心 可以加上
    System.setProperty("javax.net.ssl.trustStore"," C:/Program Files/Java/jdk1.6.0_20/jre/lib/security/cacerts" );
    注: 这个 cacert的默认密码是changeit

    2019-07-17 19:24:10
    赞同 展开评论 打赏
  • 喜欢技术,喜欢努力的人

    把这2个证书 import 到 JVM默认的 keystore中 即cacert中
    {JAVA_HOME}/jre/lib/security/cacerts. 理论上来说java 虚拟机会默认加载这个cacert的只要运行在这个jvm的应用程序 都会在这个key store 里面寻找可trust的证书,也就不用再代码里显示的声明 加载什么什么证书了。
    当然了 如果不放心 可以加上
    System.setProperty("javax.net.ssl.trustStore"," C:/Program Files/Java/jdk1.6.0_20/jre/lib/security/cacerts" );
    注: 这个 cacert的默认密码是changeit

    2019-07-17 19:24:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Web应用系统性能优化 立即下载
高性能Web架构之缓存体系 立即下载
PWA:移动Web的现在与未来 立即下载