Java 애플리케이션에 루트 인증 기관 추가

Java 애플리케이션에 루트 인증 기관 추가

CentOS7에 Jenkins를 설치했는데 플러그인을 업데이트/설치하려고 할 때 SSL 오류가 발생합니다. 몇 가지 조사 끝에 Java CA 저장소에 루트 CA 인증서가 없다는 사실을 발견했습니다.

이 유틸리티를 사용하여 keytool누락된 CA 인증서를 Java CA 저장소에 추가했는데 제대로 작동했습니다. 그런데 그걸 조작해야 한다는 게 귀찮은 것 같아요.

시스템이 신뢰하는 루트 CA 인증서를 Java가 상속할 수 있는 방법이 없나요? 그렇다면 어떻게?

답변1

인증서 파일을 CentOS 7.x의 이 디렉터리에 복사하세요.

$ sudo cp <cert file> /etc/pki/ca-trust/source/anchors/

인증서 파일을 이 디렉터리에 배치한 후 다음 명령을 실행하여 새로 추가된 인증서로 시스템을 업데이트합니다.

$ sudo update-ca-trust

자바는 어떻습니까?

매뉴얼 페이지를 보면 update-ca-trust다음 섹션을 볼 수 있습니다.

$ man 업데이트-ca-신뢰

...

/etc/pki/java/cacerts

불신 정보 없이 Java 키 저장소 파일 형식으로 TLS 서버 인증에서 사용하도록 신뢰할 수 있는 CA 인증서 목록이 포함된 파일의 클래식 파일 이름입니다. 이 파일은 update-ca-trust 명령으로 생성된 병합 출력을 참조하는 심볼릭 링크입니다.

파일을 보면 /etc/pki나머지 디렉토리 구조에 어떻게 연결되는지 확인할 수 있습니다.

$ ll /etc/pki/java/cacerts
lrwxrwxrwx. 1 root root 40 May  2 10:41 /etc/pki/java/cacerts -> /etc/pki/ca-trust/extracted/java/cacerts

이에 대해 Java를 실행하면 다음과 같습니다 keytool.

$ keytool -list -keystore /etc/pki/java/cacerts -storepass changeit |& head
Keystore type: JKS
Keystore provider: SUN

Your keystore contains 155 entries

hellenicacademicandresearchinstitutionsrootca2011, May 2, 2018, trustedCertEntry,
Certificate fingerprint (SHA1): FE:45:65:9B:79:03:5B:98:A1:61:B5:51:2E:AC:DA:58:09:48:22:4D
taiwangrca, May 2, 2018, trustedCertEntry,
Certificate fingerprint (SHA1): F4:8B:11:BF:DE:AB:BE:94:54:20:71:E6:41:DE:6B:BE:88:2B:40:B9
teliasonerarootcav1, May 2, 2018, trustedCertEntry,

위에서는 사용 가능한 모든 인증서를 가져와 자동으로 이 Java JKS 파일에 병합한 것을 볼 수 있습니다. 이 파일은 시스템에서 실행되는 모든 Java 애플리케이션에서 사용할 수 있습니다.

인용하다

관련 정보