인증서 포맷
인코딩 포맷[edit | edit source]
PEM 포맷[edit | edit source]
PEM (Privacy Enhanced Mail)은 Base64 로 인코딩한 텍스트 형식의 파일이다. 메모장으로 열어볼 수 있다. 원래는 이메일 보안에 사용되는 인코딩 포맷이었는데 이메일에서는 잘 쓰이지 않고 인증서 또는 키 값을 저장하는데 많이 사용된다. 모든 Binary 파일이 대상이 될 수 있다.
어떤 바이너리 파일을 PEM 으로 변환했는지 구분하기 위해 파일의 맨 앞에 dash(-) 를 5 개 넣고 BEGIN 파일 유형을 넣고 다시 dash(-) 를 5개 뒤에 END 파일 유형 구문을 사용한다.
예시1 - 인증서 인코딩
-----BEGIN CERTIFICATE----- MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43 rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw== -----END CERTIFICATE-----
예시2 - OpenSSH 개인 키 인코딩
-----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABC/fXuBoa WboQk95dZ4Udj3AAAAEAAAAAEAAAGXAAAAB3NzaC1yc2EAAAADAQABAAABgQC+dEvO8yL7 XgY1NlP/vro77yxiqq/hKe4QHMplS/LnMbaKtZP1ijyMSuTGoIA+Aw9CUDpWKXwekrBXpm GvbDlmHQieRJPhh/3dW1xPKgRPAMiiA/9awSM0sFcjyH8NQcfweu93QMBZAg/WrsQz1l7j ..... -----END OPENSSH PRIVATE KEY-----
예시3 - 암호화된 개인 키 인코딩 개인키는 BEGIN RSA PRIVATE KEY 로 시작하며 암호화되었을 경우 Proc-Type: 과 DEK-Info 헤더에 암호화 알고리즘 정보를 표시한다.
-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-128-CBC,754D916B5B2D2AF9ACDEED19908F0336 oB2JARMSnliQOgu4V96xwuqqo9rP/XXJbYFT6XEriBpVX/qOwSpAkLXAL71SB0VS iEDdxK96zctIgo0q3zpowO2cx6uAxk4BIDWxvpM4A8xCFJgskpXeXpI5pnpgDiLO ... -----END RSA PRIVATE KEY-----
확장자
PEM 포맷은 일반적으로 .pem 이라는 확장자를 사용하지만, 흔히 쓰이는 포맷이라.crt, .cer 등 다른 확장자임에도 PEM 포맷을 사용하는 경우가 많다. (아래 내용 참고)
DER 포맷[edit | edit source]
Distinguished Encoding Rules
DER 포맷의 파일은 PEM과 같은 텍스트 형식의 파일이 아닌, 바이너리 형태로 인코딩한 포맷이다. 확장자 또한 .der을 사용한다.
메모장으론 열어볼 수 없고 DER을 인식할 수 있는 프로그램이 있어야 한다. (ASN.1 파서 등)
CSR 포맷[edit | edit source]
Certificate Signing Request
CSR 포맷은 인증기관(CA)에 인증서 발급 요청을 하는 특별한 ASN.1 형식의 파일이며 그 안에는 내 공개키 정보와 사용하는 알고리즘 정보등이 들어 있다.
CSR 생성 시 보통 PEM 포맷으로 인코딩해서 전달하며 다음과 같은 PEM 헤더가 붙어 있다.
위의 다른 포맷이나 확장자들과 달리 인증서 파일이 아니다. 인증서 요청용 파일이다.
-----BEGIN NEW CERTIFICATE REQUEST----- MIIDZjCCAs8CAQAwajELMAkGA1UEBhMCS1IxETAPBgNVBAgMCHdvb3dhaGFuMREw DwYDVQQHDAh3b293YWhhbjERMA8GA1UECgwId29vd2FoYW4xETAPBgNVBAsMCHdv b3dhaGFuMQ8wDQYDVQQDDAZhZGJldGEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ ... -----END NEW CERTIFICATE REQUEST-----
단순 확장자[edit | edit source]
CRT 확장자[edit | edit source]
Certificate의 약자
인증서를 의미하는 CERT 의 약자로 보통 PEM 형식의 인증서를 의미한다.
즉 확장자는 .crt이지만 열어보면 PEM 파일과 동일하다. Linux 나 Unix 계열에서 .crt 확장자를 많이 사용한다.
CER 확장자[edit | edit source]
Certificate의 약자
Windows 에서 인증서를 내보내기 할 때 사용하는 확장자로, 이 또한 대부분 PEM 포맷을 사용한다.
유닉스, 리눅스 계열에서는 Cert를 CRT로 줄이고, 윈도우에선 Cert를 CER로 줄였을 뿐, 일반적으론 차이가 없다. (PEM 포맷)