WEB/APACHE

26. SSL 인증서 파일 포맷 종류

by coldplayer83 2026. 4. 22.
728x90
반응형

https://www.sslcert.co.kr/guides/kb/54

 

SSL 인증서 파일 포맷 종류 - crt, cer, csr, pem, der, pfx, p12, p7b, jks, key - SecureSign

SSL 인증서 파일 포맷 종류 - crt, cer, csr, pem, der, pfx, p12, p7b, jks, key - SecureSign

www.sslcert.co.kr

https://www.sslcert.co.kr/guides/SSL-Certificate-Convert-Format

 

SSL 인증서 pem, crt, pfx, jks, p7b 포맷 변환 가이드 - SecureSign

SSL 인증서 pem, crt, pfx, jks, p7b 포맷 변환 가이드 - SecureSign

www.sslcert.co.kr

 

PEM (Privacy Enhanced Mail) - APACHE, NGINX (.pem / .crt / .cer / .key)
Base64 인코딩된 ASCII 텍스트

파일 구분 확장자로 .pem 을 주로 사용

노트패드에서 열기/수정도 가능

개인키, 서버인증서, 루트인증서, 체인인증서 및 CSR 등 SSL 관련 모든 과정에서 사용되는 기본 포맷이며, Base64 포맷은 가장 광범위하고 거의 99% 시스템에 호환되는 산업 표준 포맷이다. (대부분 Base64 Text 파일) (ex. sslcert.co.kr_xxx.crt.pem)

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

 

pem 인증서 파일 내용 보기

openssl x509 -in [파일이름].pem -text


CRT
인증서 파일이다 라는 의미로 붙이며, 거의 대부분 Base64 PEM 포맷

주로 유닉스/리눅스 기반 시스템에서 통용되는 확장자로 cer 확장자를 붙이기도 함

파일을 노트패드 등으로 열어 보면 PEM 포맷인지 바이너리 포맷인지 알수 있지만, 99% 는 Base64 PEM 포맷이라고 봐도 무방

(.crt 확장자 보다는 파일 포맷이 명확하도록 .pem 또는 .der 붙이는걸 권장) (ex. sslcert.co.kr_xxx.crt.pem)

CER
대부분 Base64 PEM 포맷이며, 종종 바이너리 포맷일때도 있음

주로 Windows 기반에서 인증서 파일임을 구분하기 위해서 사용되는 확장자

crt 확장자와 거의 동일한 의미이며, cer 이나 crt 확장자 모두 윈도우에서는 기본 인식되는 확장자임

저장할때 어떤 포맷으로 했는지에 따라 다르며, 파일 생성을 한 사람이 붙이기 나름임  

 

KEY
주로 openssl 및 java 에서 개인키 파일임을 구분하기 위해서 사용되는 확장자

Base64 PEM 포맷일수도 있고, DER 바이너리 포맷일수도 있으며, 노트패드 같은 텍스트 편집기로 파일을 열어봐야 어떤 포맷인지 알 수 있음

저장할때 어떤 포맷으로 했는지에 따라 다르며, 확장자는 이름 붙이기 나름임 (ex. sslcert.co.kr_xxx.key.pem) 

 



DER(Distinguished Encoding Representation) - WINDOWS, JAVA (.der / .cer)
바이너리 포맷(이진)으로 바이너리 인코딩 포맷을 읽을수 있는 인증서 라이브러리를 통해서만 내용 확인이 가능

사설 또는 금융 등 특수 분야 및 아주 오래된 구형 시스템을 제외하고 최근 웹서버 SSL 작동 시스템 에서는 흔히 사용되는 포맷은 아님

3082 07fd 3082 05e5 a003 0201 0202 1068
1604 dff3 34f1 71d8 0a73 5599 c141 7230

 

der 인증서 파일 내용 보기

openssl x509 -in [파일이름].der -inform der -text -noout
또는
keytool -printcert -file [파일이름].der

 


 

PKCS(Public-Key Cryptography Standards)

RSA 시큐리티가 개발한 공개키 암호화 기술 표준 세트

 

PKCS7 (.p7c)

디지털 서명되거나 암호화된 데이터를 배포하기 위한 다목적 형식을 가지고 있음

윈도우에서 지원하는 개방형 표준

개인키를 포함할 수 없음

 

P7B - WINDOWS, TOMCAT (.p7b)
PKCS7 포맷

서버인증서+루트인증서+체인인증서를 모두 담을수 있어 SSL 인증서 적용이나 또는 이전시 유용

Windows 에서는 자동으로 인식하며, 일부 서버에서는 p7b 포맷으로만 인증서 설정이 되는 경우가 있음 (Base64 Text 파일)

pfx 와 달리 p7b 는 개인키가 포함되지 않음

일부에서는 .p7c 라는 확장자를 붙이기도 함 (ex. sslcert.co.kr_xxx.p7b)

(p7b 등은 인증서라기 보다는 인증서를 모아 놓은 저장소,스토어,바구니,컨테이너 용도 파일)

 

PKCS8

PKCS7과 달리 개인키를 휴대할 때 사용되는 유사 표준

 

PKCS12 - IIS, WINDOWS (.pfx / .p12)

암호화를 통해 더 나은 보안을 제공

PEM파일과 마찬가지로 단일 인증서에 전체 인증서 체인 및 키쌍까지 포함 가능

그러나 PEM과 달리 완전히 암호화된 암호로 보호된 컨테이너

 

PFX / P12
PKCS12 바이너리 포맷의 인증서 스토어이며, Personal Information Exchange Format 를 의미

주로 Windows IIS 기반에서 인증서 적용/이동시 활용

주요 장점으로는 개인키, 서버인증서, 루트인증서, 체인인증서를 모두 담을수 있어 SSL 인증서 적용이나 또는 이전시 유용

Tomcat 등 pfx 설정을 지원하는 서버가 많아지고 있음(ex. sslcert.co.kr_xxx.pfx) (바이너리 이진 파일)

(pfx/p12 등은 인증서라기 보다는 인증서를 모아 놓은 저장소,스토어,바구니,컨테이너 용도 파일)

 



JKS - JAVA / TOMCAT, JBOSS (.jks)
Java Key Store 의 약자이며, Java 기반의 독자 인증서 스토어 포맷

pfx 와 마찬가지로 개인키+서버인증서+루트인증서+체인인증서를 모두 담을수 있어서 SSL 인증서 파일 관리시 유용

Java 기반의 Tomcat 서버에서 SSL 적용시 가장 많이 사용되는 포맷 (ex. sslcert.co.kr_xxx.jks) (바이너리 이진 파일)

(jks 등은 인증서라기 보다는 인증서를 모아 놓은 저장소,스토어,바구니,컨테이너 용도 파일)\

 


 

CSR(Certificate Signing Request)
거의 대부분 Base64 PEM 포맷

SSL 발급 신청을 위해서 본 파일 내용을 인증기관 CA 에 제출하는 요청서 파일임을 구분하기 위해서 붙이는 확장자(Base64 Text 파일)


 

인증서 변환 방법

 

p7b => crt

openssl pkcs7 -print_certs -in [파일이름].p7b -out [파일이름].crt

 

x.509 => pem

openssl x509 -in [파일이름].cer -outform PEM -out [파일이름].pem

 

der / cer => pem

openssl x509 -inform der -in [파일이름].der -out [파일이름].pem
openssl x509 -in [파일이름].cer -outform pem -out [파일이름].pem

 

pem => der

# 인증서
openssl x509 -outform der -in [파일이름].pem -out [파일이름].der
또는
openssl x509 -outer der [파일이름].pem -out [파일이름].der

# 개인키
openssl rsa -in [파일이름].pem -pubout -outform der -out [파일이름].der

 

pem => p7b

openssl crl2pkcs7 -nocrl -certfile [파일이름].pem -out [파일이름].p7b -certfile CACert.cer

openssl crl2pkcs7 -nocrl -certfile 도메인_주문번호.all.crt.pem -out 변환생성파일.p7b (발급완료 zip 기준 : 서버+체인+루트)
openssl crl2pkcs7 -nocrl -certfile root-chain-bundle.pem -out 변환생성파일.p7b (발급완료 zip 기준 : 체인+루트)
openssl crl2pkcs7 -nocrl -certfile 서버인증서.pem -certfile 루트체인.pem -out 변환생성파일.p7b (개별 파일 통합 기준)

 

pkcs7 => pem

openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem
728x90
반응형

'WEB > APACHE' 카테고리의 다른 글

28. HTTP/2  (0) 2026.07.01
27. Apache SameSite 설정  (0) 2026.06.08
25. 한글 파일 안 보이는 문제  (0) 2026.01.22
24. X-Forwarded-For(XFF) 설정  (0) 2026.01.15
23. ssl 인증서 암호 해제  (0) 2025.12.23

TOP

Designed by 티스토리