728x90
2023년 03월 08일부로 인증서 세대 교체로 인해서 기존 RootCA/Chain 방식이 변경되었다.
이 변경된 인증서는 G5로 Java1.8(Oracle)에서는 지원이 된다고 한다.
하지만 대부분이 OpenJDK를 사용하고 있다고 생각하기 때문에 작성한다.
추후에도 이러한 업데이트가 이뤄질텐데 인증서롤 교체할 땐 꼭 변경된 사항이 없는지 체크하는게 좋다.
[참고] DigiCert G5 Root and Intermediate CA Certificate Update
인증서 교체 방법
JAVA의 인증서 저장소에 Root 인증서 추가하는 방법입니다.
$JAVA_Home/jre/lib/security 폴더의 cacerts 이름의 keystore 파일이 “신뢰할 수 있는 루트인증서 저장소” 역할을 합니다.
(별도의 truststore 를 운영하시는 경우, cacerts 파일 대신에 해당 truststore 파일명을 명령어에 기재하시면 됩니다.)
- $JAVA_Home/jre/lib/security 폴더의 cacerts 파일을 $JAVA_HOME/jdk/bin 폴더로 이동합니다.
($JAVA_HOME에 jdk 폴더가 없다면, $JAVA_HOME/jre/bin 폴더 등 keytool.exe 파일이 있는 폴더로 이동하시면 됩니다.) - 첨부된 파일을 아래의 명령어를 이용하여 cacerts 에 import 합니다.
인증서 삽입: keytool -import -trustcacerts -alias DigiCertGlobalRootG2 -file Root.crt -keystore cacerts -storepass changeit
인증서 삽입: keytool -import -trustcacerts -alias ThawteTLSRSACAG1 -file Chain.crt -keystore cacerts -storepass changeit
인증서 확인: keytool -keystore /usr/java1.8/jre/lib/security/cacerts -storepass changeit -list -v | grep -i DigiCertglobalrootg2
※ changeit 은 cacerts 의 기본 패스워드입니다.
※ alias가 이미 있다고 나온다면, alias 명을 변경해서 등록하시면 됩니다.
- import 완료된 cacerts 파일을 다시 $JAVA_HOME/jre/lib/security 폴더로 이동합니다.
- 서비스 재시작 후 확인합니다.
인증서 cacerts 적용 방식
여기서 궁금했던건 인증서 저장소에 넣었을 때 바로 적용이 될까? 였다.
인증서에 대한 RootCA를 넣었을 때 사용할때마다 쓰는 줄 알았으나 JVM이 시작되면서 Cacerts파일을 메모리에 가지고 올라가기 때문에 서비스를 재시작해줘야 한다.
728x90
'Linux' 카테고리의 다른 글
[Nginx] 여러개 location 설정하는 방법 (2) | 2024.03.06 |
---|---|
리눅스 계정 만료 명령어 (0) | 2024.03.06 |
SSL 인증서 에러(No subject alternative DNS name matching) (0) | 2024.02.22 |
[테라폼] 리소스 구성 및 속성 참조 (0) | 2024.02.16 |
프로메테우스(Prometheus), 그라파나(Grafana)를 Docker Compose로 설치하기 (0) | 2024.02.08 |