为了账号安全,请及时绑定邮箱和手机立即绑定

BouncyCastleFipsProvider 进行服务器证书验证?

BouncyCastleFipsProvider 进行服务器证书验证?

守着一只汪 2022-06-30 17:40:54
    我们有一个在 JDK 1.8 上运行的基于 Apache Tomcat 的 Java Web 应用程序,最近不得不加强其与安全相关的功能以符合某些规定,因此我们现在使用BouncyCastleFipsProvider作为我们 JVM 的主要安全提供程序,按照建议在 java.security 中进行配置在 BC 文档中:security.provider.1=org.bouncycastle.jcajce.provider.BouncyCastleFipsProvidersecurity.provider.2=com.sun.net.ssl.internal.ssl.Provider BCFIPSsecurity.provider.3=sun.security.provider.Sun 我现在面临一个问题,通过 HTTPS 调用我们的第三方服务之一,因为它的证书链无法验证。我们得到的例外是:Caused by: sun.security.validator.ValidatorException: End user tried to act as a CA        at sun.security.validator.SimpleValidator.checkBasicConstraints(SimpleValidator.java:320)        at sun.security.validator.SimpleValidator.checkExtensions(SimpleValidator.java:237)        at sun.security.validator.SimpleValidator.engineValidate(SimpleValidator.java:221)        at sun.security.validator.Validator.validate(Validator.java:262)        at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)        at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)        at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)这个 HTTPS 调用过去可以正常工作,所以我调试了 SSL 握手,并注意到在以前的(工作)版本(使用 Sun 的安全提供程序的默认 JVM 安全设置)中,验证是通过另一个类完成的:sun.security.validator。 PKIX 验证器。在当前(不工作)设置中,SSLContext 由上述列表中的第二个提供者提供,即“Sun JSSE 提供者(FIPS 模式,加密提供者 BCFIPS)”我对 JCE、JSSE、Bouncy Castle 没有那么深入的经验,所以我想知道是否有人知道这个PKIXValidator 是否可以与 com.sun.net.ssl.internal.ssl.Provider(“BCFIPS”) 一起使用来验证服务器证书?如果是这样,我该如何启用它?更新: 我们还在我们的 java.security 文件中设置了以下参数,我在我们的一个文档中发现的原因是:“PKIX 不能用作信任管理器算法。” 我相信这是我应该仔细检查的。ssl.KeyManagerFactory.algorithm=SunX509ssl.TrustManagerFactory.algorithm=SunX509UPDATE2: 我已经尝试将上述算法属性设置为 PKIX,并且成功了,现在可以建立 HTTPS 连接。注意:该第三方证书有效,其链受浏览器信任,由知名根CA颁发。问题是他们在链中两次发送自己的证书,这使得 SimpleValidator 失败。额外问题:上面列表中的前两个提供者有什么区别?
查看完整描述

1 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

在 java.security 中设置这些参数解决了这个问题:


ssl.KeyManagerFactory.algorithm=PKIX

ssl.TrustManagerFactory.algorithm=PKIX

另见:https ://bugs.openjdk.java.net/browse/JDK-8169745


查看完整回答
反对 回复 2022-06-30
  • 1 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信