2020년 8월 11일 화요일

com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by sing Secure Sockets Layer (SSL) encryption

정말.. SAP XI/PI/PO 프로젝트를 하면서 웬만한 에러를 다 접해봤다고 생각한건 오산인것 같습니다. 가끔새로운 에러를 볼때가 있는데 특히 정상수행되고 있었던 인터페이스가 갑자기 안될때.. 이런경우 난감한것 같습니다.

- 현상

JVM 버젼 업데이트후 타겟이 MSSQL인 인터페이스에 에러가 확인이 되었고 SAP PO의 Communication Channel에서 Ping 테스트를 해봤을때 실패되었습니다.

- 원인

JRE_HOMQ/lib/security/Java.security 경로에
jdk.tls.disabledAlgorithms=SSLv3 행과
jdk.certpath.disableAlgorithms= 이행이
주석처리가 안되어있어서 그런거라고 하고 이작업 후에는 문제가 되었던 인터페이스나 Ping이 잘되었습니다.

- SSL3란?

"해당 내용은 인터넷에서 검색한 내용이라 정확하지 않을수 있습니다."
SSL(Secure Sockets Layer)과 TLS(Transport Security Layer) 용어는 Client와 Server간 통신을 암호화 하는데 사용되는 프로토콜이라고 합니다.
두개의 암호화 프로톨콜의 발전 순서는
TLS 1.2 > TLS 1.1 > TLS 1.0 > SSL 3.0 순서로 업데이트 출시되었으며 SSL 3.0을 비활성화 하는 경우 2가지 영향중 한가지가 TLS를 전혀 지원하지 않는 클라이언트는 암호화된 연결을 전혀 할수가 없다고 합니다.

- 정리

위 에러내용에 의하면 SAP PO에서 레거시(SQLServer)에 암호화(보안)연결에 실패해서 발생된 에러이며 이 에러는 발생될수 있는 부분들은 위에서 언급했던 원인 외에도 NOTE  2510690-SDI MSSqlServerAdapter support for TLS 1.2 내용처럼 JDBC드라이버버젼에서 TLS 1.2를 지원안하는 문제나 프레임워크 3.5에  대한 업데이트 안된 부분도 있는것 같습니다. Client나 Sever 중 한쪽에서 암호화준비가 안된경우 에러가 발생되는것 같습니다.

#SAP #PO75 #ReceiverJDBCAdapter #SQLServer #SSL #TLS

댓글 없음:

댓글 쓰기