【问题标题】:Can not connect to sqlserver with Bouncy Castle Fips Provider using to run the JSSE in FIPS mod无法使用 Bouncy Castle Fips Provider 连接到 sqlserver,用于在 FIPS mod 中运行 JSSE
【发布时间】:2016-10-07 16:08:26
【问题描述】:

我在 Java 8 v102 中,使用 sqljdbc42.jar 和 jtds-1.3.1.jar 以 FIPS 模式连接到 SQL Server 2008。我用https://www.bouncycastle.org/fips/BCUserGuide.pdf 配置了我的Java,但我收到以下错误。我该如何解决这个问题?

com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法建立 使用安全套接字层 (SSL) 加密与 SQL Server 建立安全连接 .错误:“FIPS 模式:只能使用 SunJSSE TrustManagers”。

【问题讨论】:

  • 你解决了吗,请分享你的知识
  • 我也遇到了这个问题。设置为as such。我认为这意味着 BC 正在使用的一些 TrustManager 实现不会扩展 SunJSSE 或其他东西?
  • 我认为this 是相同/类似的问题,但我不知道如何解决。
  • 我知道已经很久了,但是如果你们中的任何人能够解决它,请发表评论。

标签: java sql-server-2008 bouncycastle fips sqljdbc


【解决方案1】:

FIPS 模式不允许第三方来源的 TrustManager/KeyManager 实施,仅支持 X509TrustManagerImpl/X509KeyManagerImpl 实例的 SunJSSE KeyManager/TrustManager。

我在 postgres jdbc 中克服了这个问题,它允许我通过自定义 sslFactory,所以我通过了org.postgresql.ssl.DefaultJavaSSLFactory,这反过来会阻止 postgres 发送它自己的 KeyManager 实现,并将进程委托给 Java 以提供正确的 KeyManager 实例。

在其他 jdbc 驱动程序中,您可能需要找到相同的配置来克服这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多