3

我在 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”。

4

1 回答 1

0

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

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

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

于 2022-02-05T16:14:59.307 回答