JDK 버전 변경에 대한 주의 사항
운영 서버에서 낮은 버전의 자바 버전을 사용하고 있고 이 버전을 업데이트 한다면 해당 내용을 한번 읽어보기 바란다.
사실 실무에서 발생하지 않는다면 이 문제를 경험하기에는 힘들 수 있다고 생각한다.
JDK1.8.0_101버전을 사용하고 있었고 각 운영서버에서 JDK1.6, 1.8 대표 마이너 버전을 지정하여 동일한 버전으로 통일화하였다. 이 과정에서 문제가 발생했다.
기존에 계속해서 업데이트 된 Root/Chain을 JDK1.8.0_101의 Secerts에 추가했었다.
마이너 버전을 업데이트 하기 위해서 JDK1.8.0_202로 업데이트 했지만 새로운 JDK에는 업데이트 된 Root/Chain이 없다.
그래서 결국 외부 서비스에서 업데이트된 SSL 인증서를 사용하면 PKIX ERROR가 발생한다.
이를 발생하지 않게 하기 위해서는 JDK 안에 있는 Secerts 파일을 그대로 가져와 사용해야 하고 만약 버전이 마이너 업데이트가 아니고 메이저 업데이트라면 그 인증서가 있을수도, 없을수도 있다. 그래서 Secerts파일을 그대로 가져와 사용해도 되지만 변경된 사항이 있는지도 검토하는 것을 권장한다.
JDK 버전 관리
보통은 자바 버전 메이저를 변경하는 경우는 흔지 않다. 보통 JVM 문제가 크게 발생하지 않는 경우 상용은 그대로 사용하는 것이 좋다. 하지만 마이너 버전 업데이트가 필요할 수 있으니 아래와 같이 관리하는 것이 좋다.
이처럼 심볼릭 링크를 통해서 관리하고 추후에 버전이 변경되면 심볼릭링크만 변경해주면 된다.
lrwxrwxrwx 1 root root 11 2019-03-28 15:47 java1.6 -> jdk1.6.0_12/
lrwxrwxrwx 1 root root 11 2019-03-28 15:47 java1.8 -> jdk1.8.0_51/
drwxr-xr-x 1 root root 4096 2019-03-28 15:47 jdk1.6.0_12/
drwxr-xr-x 8 root root 4096 2015-06-09 11:40 jdk1.8.0_51/
drwxr-xr-x 8 root root 4096 2019-03-22 14:52 jdk1.8.0_71/
'심볼릭 링크를 다른 버전으로 바꾸면 현재 서비스들은 영향을 받을까?'
영향을 받지 않는다.
JVM을 사용하는 서비스들은 서비스를 시작할 때 JVM에 JDK정보들을 Memory에 적재되어 운용된다.
심볼릭 링크 생성 방법
jdk1.8.0_71을 java1.8이라는 심볼릭 링크를 만들어 연결한다.
$ ln -s jdk1.8.0_51 java1.8
lrwxrwxrwx 1 root root 11 2019-03-28 15:47 java1.8 -> jdk1.8.0_51/
심볼릭 링크 변경 방법
$ ln -sfn jdk1.8.0_71 java1.8
lrwxrwxrwx 1 root root 11 2019-03-28 15:47 java1.8 -> jdk1.8.0_71/
'Linux' 카테고리의 다른 글
Nginx 수동 설치 (2) | 2024.06.05 |
---|---|
ELK스택에서 Heartbeat 설치 방법 (0) | 2024.06.03 |
Openssl 지원 버전 확인하기 (0) | 2024.04.11 |
springframework [/WEB-INF/spring/root-context.xml] 에러 (0) | 2024.04.03 |
[Nginx] 500 ERROR 커스텀 페이지 지정하기 (0) | 2024.03.21 |