PEM, KEY, CRT, CSR는 모두 보안 인증서 및 암호화와 관련된 파일 형식입니다. 각 파일의 역할과 차이점을 아래와 같이 설명하겠습니다.
PEM은 인증서, 키, 또는 서명된 인증서 등을 저장하는데 사용되는 형식으로, 텍스트 형식으로 인코딩됩니다. PEM 파일은 Base64로 인코딩된 바이너리 데이터로 구성되며, 헤더와 푸터로 구분된 텍스트를 포함합니다.
-----BEGIN CERTIFICATE-----
MIIDyzCCArOgAwIBAgIQAhjm8mchQpgd6t6lgWlpy2g61ZpFZpgJXfEwDQYJKoZI
...
-----END CERTIFICATE-----
KEY 파일은 개인 키(Private Key) 또는 공개 키(Public Key)를 저장하는 파일입니다. 공개 키는 공개적으로 배포할 수 있지만, 개인 키는 절대로 공개되어서는 안 되며, 주로 RSA, ECDSA, DSA와 같은 알고리즘에 의해 생성됩니다.
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE5AgEAAkEAmk9XsSjpGkd9vjeC
...
-----END PRIVATE KEY-----
CRT 파일은 디지털 인증서를 저장하는 파일입니다. 인증서는 개인 키와 공개 키의 연관성을 인증 기관(CA)을 통해 증명한 것입니다. PEM 형식으로 저장되며, Base64로 인코딩된 서명된 인증서입니다.
-----BEGIN CERTIFICATE-----
MIIDyzCCArOgAwIBAgIQAhjm8mchQpgd6t6lgWlpy2g61ZpFZpgJXfEwDQYJKoZI
...
-----END CERTIFICATE-----
CSR은 인증서 서명 요청(Certificate Signing Request)으로, 서버 또는 엔티티가 인증 기관(CA)에게 인증서를 발급받기 위해 제출하는 요청 파일입니다. 이 파일은 공개 키와 신원 정보를 포함하고 있으며, 개인 키로 서명됩니다.
-----BEGIN CERTIFICATE REQUEST-----
MIICrTCCAZUCAQAwaDELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYD
VQQHDARDaXR5MRUwEwYDVQQKDAxPcmdhbml6YXRpb24xDzANBgNVBAsMBlNlcnZl
...
-----END CERTIFICATE REQUEST-----
| 파일 종류 | 목적 | 주요 내용 | 형식 |
|---|---|---|---|
| PEM | 인증서, 키, 서명된 인증서 등을 포함 | Base64로 인코딩된 인증서, 키 | .pem, .crt, .key 등 |
| KEY | 개인 키 또는 공개 키 | RSA, DSA, ECDSA 개인 키/공개 키 | .key |
| CRT | 서명된 인증서 | 인증 기관(CA) 서명된 인증서 | .crt |
| CSR | 인증서 서명 요청 | 공개 키, 조직 정보 포함 | .csr |