-
MS SQL - 오류 : PKIX path building failed트러블슈팅 2022. 5. 30.반응형
오류 내용 : com.microsoft.sqlserver.jdbc.SQLServerException 드라이버가 SSL(Secure Sockets Layer) 암호화를 사용하여 SQL Sever로 보안 연결을 설정할 수 없습니다. 오류: "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target". 이건 인증서 오류인데 구글에 관련 오류를 검색하면 SSL 인증서를 자바 시큐리티 관련 파일에 수동으로 추가 하라고 나온다.
그러나 인증서를 수동으로 추가할 수 없는 경우나 추가 해서는 안되는 경우도 있을 것이다.
마이크로소프트 공식 문서에서 해답을 찾을 수 있다.
공식 문서에 따르면 "encrypt" 속성과 "trustServerCertificate" 속성의 값이 true로 되어 있으면
ms jdbc driver에서 SQL 서버에 TLS 인증서의 유효성 검사를 하지 않는다고 나온다.
SQL 서버에만 인증서가 있는 경우 일반적으로 사용하는 방법 이라고 한다.
즉 저 2개 속성들의 값을 true로 주면 인증서 유효성 검사를 안하니 SQL server 서버 보안 연결에 대한 오류는 해결이 될 거라는 것.
spring.datasource.url=jdbc:sqlserver://주소;databaseName=db이름;encrypt=true;trustServerCertificate=true
주의 : 공식 문서에 나와 있는 예제는 "integratedSecurity" 값이 true로 되어 있다.
속성 값을 false로 주거나 옵션 자체를 지울 것.
integratedSecurity 속성은 SQL 서버 보안 인증을 사용하지 않고 윈도우 인증을 사용해서 SLQ 서버에 연결 한다는 뜻
즉 이 옵션을 true로 주면 윈도우 자격 증명을 하기 위해서 사용자 이름과 패스워드도 명시 해야하기 때문.
integratedSecurity 에 대한 설명 링크
https://www.c-sharpcorner.com/blogs/what-is-sspi-in-a-net-connection-string1
닷넷의 문서이지만 대동소이하다.
반응형'트러블슈팅' 카테고리의 다른 글
이클립스 - 콘솔창 한글 깨짐 현상 (0) 2022.09.06 이클립스 - heap 메모리 / perm 메모리 부족 해결 (0) 2022.08.29 JAVA - open jdk TLS 보안 오류 (0) 2022.05.25 ORA-12514 - DBeaver 오라클 붙일때 오류 (0) 2022.05.06 이클립스 오류 - Initializing Java Tooling (0) 2022.04.05