在 Fedora 30 上使用 Oracle SQL Developer 連線到 PostgreSQL 資料庫時出現 SSL 憑證錯誤

在 Fedora 30 上使用 Oracle SQL Developer 連線到 PostgreSQL 資料庫時出現 SSL 憑證錯誤

我收到的錯誤我有一個在 RHEL 6.2 kvm 虛擬機器中運行的 postgresql 9.3 資料庫。它是我支援工作的應用程式的一部分,我無法對虛擬機器本身的內容進行任何配置更改。在生產中它將部署到裸機,該虛擬機僅用於我自己的測試需求。在我的 Windows 工作電腦上,我可以使用 SQL Developer 成功連接到類似虛擬機器上的資料庫。

我已經確認我可以透過命令列上的 psql 從虛擬機器主機成功連接到資料庫。出於測試目的,selinux 已在虛擬機器上暫時停用。

安裝 SQL Developer、openjdk、openjfx,並按照 SQL Developer 的要求傳遞 openjdk 安裝路徑、載入 postgresql JDBC 驅動程式並嘗試連接到資料庫後,出現以下錯誤:

Status : Failure -SSL error: java.security.cert.CertificateException: Certificates do not conform to algorithm constraints

我有點不知道該如何解決這個問題。我不是java開發人員,我真的不知道該如何修正這個問題。經過多次谷歌搜尋類似錯誤後,我能想到的最佳解決方案是將以下內容添加到/opt/sqldeveloper/sqldeveloper/bin/sqldeveloper.conf,這並沒有解決問題或更改錯誤:

AddVMOption -Djdk.certpath.disabledAlgorithms=MD2

懷疑這仍然是正確的方向,但我不知道應該用什麼來代替 MD2,或者這是否真的是正確的解決方案。

運行openssl s_client -connect 192.168.122.63:5432返回以下結果:

    [user@hostname ~]$ openssl s_client -connect 192.168.122.63:5432
CONNECTED(00000003)
write:errno=0
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 303 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---

我該如何解決這個問題?

答案1

您新增的行通常位於 java.security 檔案中。但您需要做的是從 java.security 檔案中刪除這一行。或者,如果您有其他已停用的演算法,請刪除 MD2 並保留其餘的。如果你有類似的東西:

jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024

做了

jdk.certpath.disabledAlgorithms=RSA keySize < 1024

你可以檢查這個答案更多細節。

答案2

看起來您的客戶端認為應該對連接進行加密,但您的伺服器沒有這樣做。要么在運行 SSL 的 postgresql 中開啟加密,要么在 Java 環境中停用加密要求。

相關內容