文件首頁
MySQL Connector/J 開發人員指南
相關文件 下載本手冊
PDF (美式信紙) - 1.2Mb
PDF (A4) - 1.2Mb


6.9.4 FIPS 模式下的 JSSE

當使用 Java 8 到 12 JRE 時,如果將 JSSE 設定為使用 FIPS 模式,在某些情況下,嘗試連線至 MySQL 伺服器可能會失敗,並出現 KeyManagementException,抱怨「FIPS 模式:只能使用 SunJSSE TrustManagers。」發生這種情況的原因是,在這種情況下,會叫用 Connector/J 實作的自訂 TrustManager,以支援不同的 sslMode 選項,但最終會遭到 SunJSSE 的預設實作拒絕。

此問題可透過告知 Connector/J 不要使用其自訂 TrustManager 實作,而是改用您自己的安全提供者來解決。這可以透過設定下列連線屬性來完成

  • fipsCompliantJsse:設定為 true 以克服上述 FIPS 模式的問題。

    注意

    設定為 true 時,Connector/J 一律會執行伺服器憑證驗證(即使 sslMode 設定為 PREFERREDREQUIRED),這表示必須使用以下描述的連線屬性設定信任儲存區,或必須啟用後援的全系統信任儲存區。

  • KeyManagerFactoryProvider:提供 javax.net.ssl.KeyManagerFactory 實作的 Java 安全提供者的名稱。

  • trustManagerFactoryProvider:提供 javax.net.ssl.TrustManagerFactory 實作的 Java 安全提供者的名稱。

  • keyStoreProvider:提供 java.security.KeyStore 實作的 Java 安全提供者的名稱,支援使用 clientCertificateKeyStoreTypetrustCertificateKeyStoreType 指定的金鑰儲存區類型。