1️⃣ PEM 형식이 무엇인가요?
PEM(Privacy-Enhanced Mail)은 키와 인증서를 저장하고 전송하는 데 사용되는 텍스트 형식입니다. 이진 DER 데이터를 Base64로 인코딩하고 -----BEGIN 및 -----END 과 같은 머리글과 바닥글로 래핑합니다. 일반적인 라벨에는 PUBLIC KEY , PRIVATE KEY 및 CERTIFICATE 가 포함됩니다. 텍스트 기반 작업 흐름에서 복사, 붙여넣기 및 전송이 쉽기 때문에 가장 일반적인 키 교환 형식 중 하나입니다.
2️⃣ PEM 외에 어떤 다른 형식이 일반적입니까?
- DER : ASN.1 구조를 직접 저장하는 순수 바이너리 형식입니다. 사람이 읽을 수 없으며 Java 생태계에서 일반적입니다.
- HEX : DER 바이너리 콘텐츠를 16진수 문자열로 표현하며, 코드 디버깅이나 삽입에 유용합니다.
- Base64(헤더 없음) : PEM 헤더 없이 Base64로 인코딩된 원시 DER, 압축 구성 또는 토큰 페이로드에 자주 사용됩니다.
- PKCS#12 (PFX) : 공개 키와 개인 키를 함께 묶을 수 있는 바이너리 컨테이너 형식으로, 일반적으로 비밀번호로 보호되며 브라우저나 Windows 시스템에서 자주 사용됩니다.
3️⃣ 각 형식은 언제 사용해야 하나요?
- PEM : OpenSSL, 웹 서버(Nginx/Apache) 및 API 교환에 적합한 가장 보편적인 옵션입니다.
- DER : Java 환경이나 엄격한 바이너리 저장이 필요한 경우에 일반적으로 사용됩니다.
- HEX : 디버깅, 임베디드 시스템 또는 정확한 바이트 검사가 필요할 때마다 유용합니다.
- Base64(헤더 없음) : 형식이 제한되거나 간결한 표현이 필요할 때 유용합니다.
- PKCS#12 : 개인 키를 비밀번호로 보호하면서 공개 키와 개인 키를 함께 전송해야 하는 경우에 유용합니다.