티스토리 뷰

java.lang.NoSuchMethodError: org.bouncycastle.jsse.provider.ProvAlgorithmChecker.check(Ljava/security/cert/Certificate;)V
---- 생략----

상황 
1개 서버내부에 여러 컨테이너가 존재하여 동시에 서브도메인으로 나눠 동일한 https 도메인으로 사용 되고 있음.

예) gw.company.com / mail.company.com 등

다른 컨테이너에서 사용하기 위해서 BouncyCastle Provider(이하 BC) 를 jre에 설정을 한 하여서
모든 서버 내부의 컨테이너가 동일한 jdk를 바라보고 있는 상황 

내가 관리하고 있는 컨테이너가 mssql jdbc 를 통해서 spring의 BasicDatasource를 통해서 연결을 설정을 해놓은 상태이다. 
여기서 연결이 되고 있지 않은 상황이 발생 

jre 에 BC를 설정을 해놓은 상태여서 관련된 API 통해서 나가는 상황 

문제1) 내부망이지만 BC가 적용되서 SSL enable되어서 연결이 정상적으로 안되는 상황(ssl설정 안함)
문제2) 다른 컨테이너에서 TSL1.2를 사용해야 하는 상황이기 때문에 BC를 반드시 설정을 해야한다. 

해결 방안
애당초에 우선순위를 최우선으로 두지 않으면 가능하다. 
java.security 내부에 설정에서 최하위로 두고 한다면 문제1 ,2 에 대한 문제가 동시에 해결된다. 
어이 털리는 상황이지만 해당 관련되서 레퍼런스도 없고 당시 TLS1.2를 설정하는 방법만 보고 했는데 
엄청 단순하게 해결을 하였다.