PEM, KEY, CRT, CSR

agnusdei·2025년 1월 20일

PEM, KEY, CRT, CSR는 모두 보안 인증서 및 암호화와 관련된 파일 형식입니다. 각 파일의 역할과 차이점을 아래와 같이 설명하겠습니다.


1. PEM (Privacy-Enhanced Mail)

정의:

PEM은 인증서, , 또는 서명된 인증서 등을 저장하는데 사용되는 형식으로, 텍스트 형식으로 인코딩됩니다. PEM 파일은 Base64로 인코딩된 바이너리 데이터로 구성되며, 헤더와 푸터로 구분된 텍스트를 포함합니다.

형식 예시:

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

특징:

  • PEM은 인증서나 키 파일을 텍스트 형식으로 저장하기 위해 사용됩니다.
  • PEM 파일은 인증서, 개인 키, 공개 키 등 여러 가지를 포함할 수 있습니다.
  • Base64로 인코딩된 바이너리 데이터를 텍스트 형식으로 저장합니다.
  • 확장자로는 .pem, .crt, .key 등이 사용될 수 있습니다.

사용 예시:

  • 서버 인증서, 클라이언트 인증서, 개인 키, 공개 키 등을 PEM 형식으로 저장하여 서버에 설치하거나 클라이언트와의 통신을 설정합니다.

2. KEY (Private Key / Public Key)

정의:

KEY 파일은 개인 키(Private Key) 또는 공개 키(Public Key)를 저장하는 파일입니다. 공개 키는 공개적으로 배포할 수 있지만, 개인 키는 절대로 공개되어서는 안 되며, 주로 RSA, ECDSA, DSA와 같은 알고리즘에 의해 생성됩니다.

형식 예시 (Private Key):

-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE5AgEAAkEAmk9XsSjpGkd9vjeC
...
-----END PRIVATE KEY-----

특징:

  • 개인 키(Private Key)는 보안 연결을 설정할 때 사용되며, 절대로 공개되어서는 안 됩니다.
  • 공개 키(Public Key)는 다른 사람과 공유할 수 있으며, 서버와 클라이언트 간의 암호화된 통신에 사용됩니다.
  • KEY 파일은 일반적으로 PEM 형식으로 인코딩됩니다.

사용 예시:

  • 개인 키는 서버에서 암호화된 데이터를 복호화하거나 인증서 서명에 사용됩니다.
  • 공개 키는 암호화된 메시지를 복호화하거나 인증서의 검증에 사용됩니다.

3. CRT (Certificate)

정의:

CRT 파일은 디지털 인증서를 저장하는 파일입니다. 인증서는 개인 키공개 키의 연관성을 인증 기관(CA)을 통해 증명한 것입니다. PEM 형식으로 저장되며, Base64로 인코딩된 서명된 인증서입니다.

형식 예시:

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

특징:

  • CRT 파일은 공개 키와 관련된 정보 및 인증 기관(CA)으로부터 서명된 정보를 포함합니다.
  • 인증서를 통해 서버나 클라이언트는 신뢰할 수 있는 엔티티인지 검증할 수 있습니다.
  • PEM 형식으로 인코딩되며, Base64로 인코딩된 데이터입니다.

사용 예시:

  • 서버 인증서로 사용되어, 서버의 신원을 증명하고 클라이언트와의 암호화된 통신을 위한 설정에 사용됩니다.
  • 중간 인증서 또는 루트 인증서도 CRT 형식으로 제공됩니다.

4. CSR (Certificate Signing Request)

정의:

CSR은 인증서 서명 요청(Certificate Signing Request)으로, 서버 또는 엔티티가 인증 기관(CA)에게 인증서를 발급받기 위해 제출하는 요청 파일입니다. 이 파일은 공개 키신원 정보를 포함하고 있으며, 개인 키로 서명됩니다.

형식 예시:

-----BEGIN CERTIFICATE REQUEST-----
MIICrTCCAZUCAQAwaDELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYD
VQQHDARDaXR5MRUwEwYDVQQKDAxPcmdhbml6YXRpb24xDzANBgNVBAsMBlNlcnZl
...
-----END CERTIFICATE REQUEST-----

특징:

  • CSR 파일은 공개 키신원 정보(예: 도메인, 조직 등)를 포함하며, 이를 CA에 제출하여 인증서를 요청합니다.
  • CSR은 개인 키로 서명되어 해당 공개 키의 소유자를 증명합니다.
  • PEM 형식으로 인코딩되며, 인증서를 발급받기 위한 요청에 사용됩니다.

사용 예시:

  • 서버에서 CSR을 생성하여 인증 기관(CA)에 제출하고, 그 결과로 서명된 인증서(CRT)를 받습니다.

각 파일의 역할 요약:

파일 종류목적주요 내용형식
PEM인증서, 키, 서명된 인증서 등을 포함Base64로 인코딩된 인증서, 키.pem, .crt, .key 등
KEY개인 키 또는 공개 키RSA, DSA, ECDSA 개인 키/공개 키.key
CRT서명된 인증서인증 기관(CA) 서명된 인증서.crt
CSR인증서 서명 요청공개 키, 조직 정보 포함.csr

파일 사용 예시:

  • PEM 파일: 서버에 인증서와 키를 설치하거나 전송할 때 사용됩니다.
  • KEY 파일: 서버에서 개인 키를 안전하게 저장하고, 인증서 서명 요청 및 암호화/복호화 작업에 사용됩니다.
  • CRT 파일: 서버와 클라이언트 간의 SSL/TLS 연결을 설정할 때 사용됩니다.
  • CSR 파일: 인증서 발급을 요청하기 위한 단계에서 생성하여 인증 기관에 제출됩니다.
profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글