无法连接到sqlserver与Bouncy城堡Fips提供程序使用在Fips模式下运行JSSE



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

com.microsoft.sqlserver.jdbc。SQLServerException:驱动程序不能建立通过SSL (secure Sockets Layer)加密与SQL Server建立安全连接. 错误:"FIPS模式:只能使用SunJSSE trustmanager "。

FIPS模式不允许从第三方源实现TrustManager/KeyManager,只支持SunJSSE KeyManager/TrustManager,它们是X509TrustManagerImpl/X509KeyManagerImpl的实例。

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

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

最新更新