개발/코더 탈출
사설 인증서 만들기(OPENSSL 이용)
-=HaeJuK=-
2025. 12. 17. 18:10
728x90
반응형
1. 파일 역할 및 이름 매칭 (정리)
mydomain.com 환경에 맞춰 아래와 같은 이름으로 생성하고 관리하게 됩니다.
| 파일명 | 역할 | |
| ca.pem | 인증 기관(CA) 증명서. 클라이언트 PC에 설치하여 신뢰를 구축합니다 |
|
| mydomain.key | 서버의 비밀키. 유출되지 않도록 서버 내부에만 보관합니다 |
|
| mydomain.crt | mydomain.com 도메인을 증명하는 최종 인증서입니다 |
|
| mydomain.jks | 자바 환경용 파일. mydomain.key와 mydomain.crt를 합친 금고입니다 |
|
2. OpenSSL을 이용한 재발행 명령어 (순서대로 실행)
1단계: Root CA 만들기 (도장 준비)
먼저 본인이 직접 인증 기관이 되기 위한 파일을 만듭니다.
Bash
# 1. CA용 비밀키 생성
openssl genrsa -out ca.key 2048
# 2. CA용 인증서 생성 (10년 유효)
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.pem \
-subj "/C=KR/ST=Seoul/L=Seoul/O=MyCA/CN=My Root CA"
2단계: mydomain.com용 키와 신청서 만들기
Bash
# 1. 서버 비밀키(tls_pri.pem 역할) 생성
openssl genrsa -out mydomain.key 2048
# 2. 인증서 서명 요청서(CSR) 생성
openssl req -new -key mydomain.key -out mydomain.csr \
-subj "/C=KR/ST=Seoul/L=Seoul/O=MyOrg/CN=mydomain.com"
3단계: CA로 서명하여 최종 인증서 발행
Bash
# CA(ca.pem)가 신청서(csr)에 도장을 찍어 최종 인증서(crt)를 만듭니다.
openssl x509 -req -in mydomain.csr -CA ca.pem -CAkey ca.key -CAcreateserial \
-out mydomain.crt -days 365 -sha256
4단계: 자바용 JKS 파일 만들기 (필요한 경우)
Bash
# 1. 먼저 p12 형식으로 합치기
openssl pkcs12 -export -in mydomain.crt -inkey mydomain.key -out mydomain.p12 -name mydomain
# 2. JKS로 변환
keytool -importkeystore -destkeystore mydomain.jks -srckeystore mydomain.p12 -srcstoretype PKCS12 -alias mydomain
3. 적용 방법 (Next Step)
- 서버 적용: 웹 서버(Nginx/Apache) 설정에서 기존의 tls_cert.pem 위치에는 mydomain.crt를, tls_pri.pem 위치에는 mydomain.key를 지정한 후 서버를 재시작하세요
- 클라이언트 등록: 새로 만든 ca.pem 파일을 사용자 PC의 **'신뢰할 수 있는 루트 인증 기관'**에 수동으로 등록해야 브라우저에서 경고가 사라집니다
728x90