728x90
SSL 인증서 포맷 이해하기: PFX, PEM, JKS 등 주요 포맷 비교
SSL 인증서를 보면 각기 다른 포맷들이 존재하고 있습니다. 각 포맷은 사용 목적이나 환경에 따라 다르게 설계되어 있으며 시스템 보안 및 관리에서 중요한 역할을 합니다. 이번 글에서는 인증서 포맷의 특징과 사용 환경을 비교하여 설명합니다.
1. PFX (PKCS#12)
- 개요: PFX는 인증서와 개인 키를 하나의 파일에 저장할 수 있는 이진 포맷입니다. PKCS#12 표준을 기반으로 하며, 보안상의 이유로 암호화가 가능합니다.
- 파일 확장자: .pfx 또는 .p12
- 주요 사용 환경: 주로 Windows 서버와 같은 시스템에서 사용됩니다. 인증서와 개인 키를 하나의 파일로 패키징하여 관리할 수 있어 편리합니다.
- 장점: 인증서와 개인 키가 하나의 파일에 포함되어 관리가 쉽고, 다른 시스템으로의 이동이 간편합니다.
2. PEM (Privacy Enhanced Mail)
- 개요: PEM은 텍스트 기반의 인증서 포맷으로, 주로 Base64로 인코딩 된 파일 형식입니다. 사람이 읽을 수 있는 포맷이라 편리하며, 여러 인증서를 하나의 파일로 결합할 수 있습니다.
- 파일 확장자: .pem, .crt, .cer, .key
- 주요 사용 환경: Apache, Nginx, Linux 서버 환경에서 많이 사용됩니다. 서버에서 SSL 인증서를 설정할 때 주로 사용되며, 텍스트 기반으로 쉽게 편집할 수 있습니다.
- 장점: 텍스트 형식이라 쉽게 관리하고, 다양한 인증서 체인을 하나의 파일로 통합할 수 있습니다. 여러 인증서가 포함된 인증서 체인을 관리하기 유리합니다.
3. JKS (Java KeyStore)
- 개요: JKS는 Java 환경에서 인증서와 개인 키를 관리하는 포맷입니다. Java 애플리케이션에서 SSL/TLS 설정을 위한 기본 포맷으로 사용됩니다.
- 파일 확장자: .jks
- 주요 사용 환경: Java 기반 서버(예: Tomcat, WebSphere)에서 사용됩니다. Java 애플리케이션에서 SSL 인증서 및 개인 키를 관리하는 데 적합합니다.
- 장점: Java 애플리케이션과의 호환성이 뛰어나며, keytool 명령어를 통해 쉽게 관리할 수 있습니다. Java 환경에서 유용하게 사용할 수 있습니다.
4. DER (Distinguished Encoding Rules)
- 개요: DER은 바이너리 형식으로 인코딩된 인증서 포맷입니다. PEM과 달리 사람이 읽을 수 없는 이진 형식으로 저장됩니다.
- 파일 확장자: .der, .cer
- 주요 사용 환경: 주로 Java 환경과 같은 이진 파일을 사용하는 시스템에서 사용됩니다.
- 장점: 바이너리 형식이라 크기가 작고, 효율적으로 데이터를 저장할 수 있습니다.
5. CER (Certificate)
- 개요: CER 포맷은 인증서 파일 형식으로, DER 또는 PEM 형식일 수 있습니다. 주로 인증서를 단독으로 제공할 때 사용됩니다.
- 파일 확장자: .cer
- 주요 사용 환경: Windows와 Linux에서 인증서를 저장하고 설치하는 데 사용됩니다.
- 장점: 인증서만 포함되어 있어 단순하고, 다양한 환경에서 호환됩니다.
6. P7B (PKCS#7)
- 개요: P7B는 인증서 체인을 포함하는 포맷으로, PKCS#7 표준에 기반한 파일 형식입니다. 개인 키는 포함하지 않습니다.
- 파일 확장자: .p7b, .p7c
- 주요 사용 환경: Windows 서버와 Java 환경에서 인증서 체인을 관리할 때 사용됩니다.
- 장점: 인증서 체인을 관리하기 용이하며, 루트 인증서와 중간 인증서 등을 포함할 수 있습니다.
7. IBM Keyring (.Kyr)
- 개요: IBM Keyring은 IBM의 SSL/TLS 환경에서 사용하는 인증서 포맷입니다. kyrtool을 사용하여 관리됩니다.
- 파일 확장자: .kyr
- 주요 사용 환경: IBM Domino 및 IBM WebSphere와 같은 IBM 소프트웨어에서 SSL 인증서 관리에 사용됩니다.
- 장점: IBM 시스템과의 높은 호환성을 제공합니다.
8. 인증서 포맷별 추천 사용 사례
- PFX (PKCS#12): Windows 서버, IIS, Exchange, Azure SSL 인증서 배포 시 사용
- PEM: Apache, Nginx, Linux 서버 환경에서 SSL 설정 시 필수
- JKS (Java KeyStore): Tomcat, WebSphere, Java 기반 애플리케이션에서 사용
- DER: Java 환경 및 일부 네트워크 장비에서 인증서 배포 시 유용
- P7B: Windows 서버 및 Java 기반 환경에서 인증서 체인 관리
9. SSL 인증서 포맷별 변환 명령어
변환 대상 | 사용 명령어 |
PFX -> PEM | openssl pkcs12 -in cert.pfx -out cert.pem -nodes |
PEM -> PFX | openssl pkcs12 -export -in cert.pem -inkey private.key -out cert.pfx |
PFX -> JKS | keytool -importkeystore -srckeystore cert.pfx -destkeystore cert.jks -deststoretype JKS |
JKS -> PFX | keytool -importkeystore -srckeystore cert.jks -destkeystore cert.pfx -deststoretype PKCS12 |
PEM -> DER | openssl x509 -outform DER -in cert.pem -out cert.der |
DER -> PEM | openssl x509 -inform DER -in cert.der -out cert.pem |
728x90
반응형
'OS > Network' 카테고리의 다른 글
Network - OpenSSL 및 Keytool을 활용한 SSL 인증서 변환 방법 – PFX, PEM, JKS 변환 가이드 (6) | 2024.11.08 |
---|---|
Network - ARP란? | 네트워크 ARP 명령어 정리 & IP-MAC 주소 변환 원리 (0) | 2024.05.03 |
Network - 가상 네트워크 설정 | Host-Only, NAT, Bridged 차이점 & 설정 방법 (2) | 2023.12.08 |
Network - 네트워크 상태 확인 명령어 netstat 이란? (0) | 2023.03.23 |
Network - 네트워크 경로 추적 명령어 tracert (traceroute) 이란? (0) | 2023.03.13 |