【问题标题】:Client Certificate using Weblogic使用 Weblogic 的客户端证书
【发布时间】:2013-02-11 18:08:29
【问题描述】:

背景:
我正在开发一个涉及客户端进行身份验证(通过客户端证书)的项目。我们正在尝试启动第三方应用程序,该应用程序首先验证客户端证书,然后启动其应用程序。
我们正在使用 Java 和 SSL hanshake,我们的客户端服务器是 Weblogic 10.x。客户端证书为 PKCS12 格式(无法更改)
这是出示证书的一段代码:

System.setProperty("javax.net.ssl.keyStore","MyPath/cert.pfx");
System.setProperty("javax.net.ssl.keyStorePassword","MyPwd");
System.setProperty("javax.net.ssl.keyStoreType","PKCS12");
url.openConnection();

现在所有这些都可以在独立的情况下运行良好。当我们把它放在 weblogic 上时,问题就开始了。有时它可以工作,有时会返回“客户端证书不存在”(http 403.7)。我尝试了各种组合(包括在 weblogic 控制台上配置自定义密钥库),但似乎没有任何效果。知道为什么 weblogic 会完全忽略 SSL 设置(即使我将密钥库设置为不存在的文件,它也不会引发错误)?用于 SSL 的 System.setProperty 在 weblogic 上似乎毫无用处!

【问题讨论】:

    标签: java ssl client certificate weblogic


    【解决方案1】:

    在 Weblogic 12c 中,您还需要添加参数 -DUseSunHttpHandler=true 以告诉 weblogic 服务器使用 Sun Http Handlers 而不是自己的。因此,您需要以下 Java VM 参数:

    -Djavax.net.ssl.keyStore=MyPath/cert.pfx
    -Djavax.net.ssl.keyStoreType=PKCS12
    -Djavax.net.ssl.keyStorePassword=MyPwd
    -DUseSunHttpHandler=true
    

    【讨论】:

      【解决方案2】:

      终于找到解决办法了!如果如上所述通过 Java 完成,Weblogic 似乎会覆盖密钥库配置。对我有用的是在 Web 逻辑启动时在 JVM 级别配置 SSL 设置。
      为了让它工作,我刚刚在 weblogic 的启动脚本中添加了这些 Java 选项:

      -Djavax.net.ssl.keyStore=MyPath/cert.pfx
      -Djavax.net.ssl.keyStoreType=MyPwd
      -Djavax.net.ssl.keyStorePassword=PKCS12
      

      从那时起,重新启动的网络逻辑和 SSL 一直运行良好 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-27
        • 2016-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-06
        • 1970-01-01
        相关资源
        最近更新 更多