RHEL 6.2 kvm 가상 머신에서 실행되는 postgresql 9.3 데이터베이스가 있습니다. 이는 제가 업무를 위해 지원하는 애플리케이션의 일부이며 VM 자체의 내용에 대한 구성을 변경할 수 없습니다. 프로덕션 환경에서는 베어메탈에 배포됩니다. 이 VM은 단지 내 테스트 요구 사항을 위한 것입니다. 내 Windows 작업 컴퓨터에서 SQL Developer를 사용하여 유사한 VM의 데이터베이스에 성공적으로 연결할 수 있습니다.
명령줄에서 psql을 통해 vm 호스트에서 데이터베이스에 성공적으로 연결할 수 있음을 확인했습니다. selinux는 테스트 목적으로 VM에서 일시적으로 비활성화되었습니다.
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
귀하의 클라이언트는 연결이 암호화되어야 한다고 생각하지만 귀하의 서버는 그렇게 하지 않는 것 같습니다. postgresql에 대해 SSL을 실행하는 모든 항목에서 암호화를 활성화하거나 Java 환경에서 암호화 요구 사항을 비활성화하십시오.