SSL-Zertifikatfehler beim Herstellen einer Verbindung zur PostgreSQL-Datenbank mit Oracle SQL Developer unter Fedora 30

SSL-Zertifikatfehler beim Herstellen einer Verbindung zur PostgreSQL-Datenbank mit Oracle SQL Developer unter Fedora 30

Der Fehler, den ich bekommeIch habe eine PostgreSQL 9.3-Datenbank, die in einer RHEL 6.2 KVM-VM läuft. Sie ist Teil der Anwendung, die ich für die Arbeit unterstütze, und ich kann keine Konfigurationsänderungen am Inhalt der VM selbst vornehmen. In der Produktion würde sie auf Bare Metal bereitgestellt, diese VM dient nur meinen eigenen Testzwecken. Auf meinem Windows-Arbeitscomputer kann ich mit SQL Developer erfolgreich eine Verbindung zur Datenbank auf einer ähnlichen VM herstellen.

Ich habe bestätigt, dass ich vom VM-Host aus über psql in der Befehlszeile erfolgreich eine Verbindung zur Datenbank herstellen kann. Selinux wurde auf der VM zu Testzwecken vorübergehend deaktiviert.

Nachdem ich SQL Developer, OpenJDK und OpenJFX installiert und den Pfad meiner OpenJDK-Installation wie von SQL Developer angefordert übergeben, den PostgreSQL-JDBC-Treiber geladen und versucht habe, eine Verbindung mit der Datenbank herzustellen, erhalte ich diese Fehlermeldung:

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

Ich bin irgendwie ratlos, wie ich das umgehen soll. Ich bin kein Java-Entwickler und weiß nicht wirklich, wie ich das beheben kann. Nachdem ich lange nach ähnlichen Fehlern gegoogelt hatte, war die beste Lösung, die mir einfiel, das Folgende hinzuzufügen /opt/sqldeveloper/sqldeveloper/bin/sqldeveloper.conf, was das Problem jedoch weder behob noch den Fehler änderte:

AddVMOption -Djdk.certpath.disabledAlgorithms=MD2

ICHverdächtigdas ist immer noch die richtige Richtung, aber ich weiß nicht, was anstelle von MD2 passieren sollte oder ob das überhaupt die richtige Lösung ist.

Beim Ausführen openssl s_client -connect 192.168.122.63:5432wird Folgendes zurückgegeben:

    [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)
---

Wie kann ich das umgehen?

Antwort1

Die Zeile, die Sie hinzufügen, befindet sich normalerweise in der Datei java.security. Sie müssen diese Zeile jedoch aus der Datei java.security entfernen. Oder wenn Sie zusätzliche deaktivierte Algorithmen haben, entfernen Sie MD2 und behalten Sie den Rest. Wenn Sie etwas wie Folgendes haben:

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

mach es

jdk.certpath.disabledAlgorithms=RSA keySize < 1024

Du kannst nachschauendiese Antwortfür mehr Details.

Antwort2

Offenbar denkt Ihr Client, die Verbindung sollte verschlüsselt werden, Ihr Server tut das aber nicht. Aktivieren Sie entweder die Verschlüsselung in dem System, auf dem SSL für PostgreSQL ausgeführt wird, oder deaktivieren Sie die Verschlüsselungsanforderung in Ihrer Java-Umgebung.

verwandte Informationen