Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
Tags
- git 폴더 모으기
- reset
- 테스팅
- jwt 필터
- options 처리
- CI/CD
- dbeaver 백업/복구
- Jenkins
- CA 인증기관
- prefilight
- 톰캣 TLS 옵션
- TLS 옵션
- 깃허브 토큰 발급
- jwt 헤더
- SSL peer shut down incorrectly
- 배포 자동화
- 환경변수
- vue 추가
- 배열 call by value
- 깃허브 토큰 생성
- 채팅 프로젝트
- 소프트웨어
- deploy.sh
- 트랜잭션 원리
- 컴파일 캐시
- JAVA API 호출실패
- vue 실행
- SSH 통신오류
- 톰캣 캐시
- 되돌리기
Archives
- Today
- Total
lty's Blog
CA 인증서와 자바 API 호출 본문
1. CA 인증서란? (Certificate Authority)
인증서를 발급해 주는 공인/사설 기관
대표적인 CA 기관
- DigiCert
- GlobalSign
- Sectigo
- Let`s Encrypt
- 이외 사내 CA
CA 인증서는 신뢰할 수 있다는 증명서로 HTTPS, TLS 통신에서 이 서버 인증서를 믿어도 되는가? 를 판단하는 기준
자바 JDK에서는 OS 인증서 저장소를 안 쓰고, 자기만의 truststore를 사용한다.
자바 버전에 따라 기본으로 포함된 CA인증서가 달라 타사 외부 API 호출 시 SSL 오류가 날 수 있음
(JDK를 빌드할 당시 신뢰된 CA 목록을 기준으로 만들어짐)
Truststore 경로
# JAVA 11 이상
%JAVA_HOME%\lib\security\cacerts
# Java 8 이하
%JAVA_HOME%\jre\lib\security\cacerts
CA인증서 미등록으로 인한 SSL 통신 오류 원인
PKIX path building failed
unable to find valid certification path
조치방법으로는 JDK 버전을 11/17 이상 (대부분의 경우 자동 해결) 올리기 또는 타사 CA 인증서 수동 등록
Window 환경 특정 CA기관 명령어로 확인
keytool -list -v -keystore "%JAVA_HOME%\lib\security\cacerts" -storepass changeit | findstr "DigiCert"
- keytool : Java에 포함된 인증서 관리도구 (JDK에 bin/keytool.exe 위치)
- - list 옵션 : Keystore 안에 들어있는 항목 목록 조회 (인증서 내용 확인)
- - v 옵션 : 상세출력 (있을 시 소유자, 발급자, 유효기간, SHA1/SHA256 지문 확인 가능)
- - keystore 옵션 : 조회할 인증서 저장소 파일 지정
- - storepass changeit : keystore 비밀번호 삽입, 옵션 넣지 않을 경우 비밀번호를 물어본다. JAVA 기본값 = changeit
- findstr "DigiCert" : DigiCert가 포함된 줄만 출력 (DigiCert CA 인증기관 조회)

특정 CA 기관 인증서 추가 명령어
keytool -importcert -keystore ${JAVA_HOME}jre/lib/security/cacerts -storepass changeit -trustcacerts -alias #{보관할 이름} -file #{인증서 파일 경로} -noprompt
- - importcert : 키스토어에 새로운 인증서를 추가하겠다는 선언
- - trustcacerts : 가져오는 인증서를 신뢰할 수 있는 항목으로 간주하는 옵션
- - alias : 저장소 내에서 이 인증서를 식별할 별명 (중복 불가)
- - file : 추가하려는 실제 인증서 (.cer, .crt) 파일의 경로 (파일이 위치하는 물리적인 경로)
- - noprompt : 확인 생략
'Backend' 카테고리의 다른 글
| 웹 캐시 무효화 (0) | 2026.02.12 |
|---|---|
| TLS 버전 불일치 SSL peer shut down incorrectly 해결 (0) | 2026.02.10 |
| JWT 헤더 검증과 CORS (0) | 2025.05.25 |
| CORS 와 브라우저 prefilight 요청 (0) | 2025.05.18 |
| 같은IP 에서 톰캣 2개이상 동시 로그인시에 세션끊김현상 조치 - JSESSIONID (0) | 2023.03.28 |
Comments