PKI/Geneal Infomation

μΈμ¦μ„œμ™€ 킀에 λŒ€ν•œ ν™•μž₯자 ν˜•μ‹(PEM CER DER CRT CSR, PFX, P12 )

JayKimπŸ™‚ 2023. 3. 3. 18:44

PKI κ΄€λ ¨ 일을 ν•˜λ©΄ μΈμ¦μ„œλ‚˜ κ°œμΈν‚€λ₯Ό λ‹€λ£¨κ²Œ λ˜λŠ” 데 μ΄λ•Œ μ΄λ“€μ˜ νŒŒμΌλ§ˆλ‹€ λ‹€μ–‘ν•œ ν™•μž₯자λ₯Ό λ‹€λ£¨κ²Œ λœλ‹€.
μ΄λ•Œ 주둜 λ§Œλ‚˜κ²Œ λ˜λŠ” ν™•μž₯μžκ°€ pem, cer, der, crt, csr, pfx, p12 λ˜λŠ” key 이닀.
이런 ν™•μž₯μžμ— λŒ€ν•΄μ„œ ν•œλ²ˆ 정리λ₯Ό ν•΄ 보면 λ‹€μŒκ³Ό κ°™λ‹€.

PEM

PEM (Privacy Enhanced Mail)은 Base64 둜 μΈμ½”λ”©ν•œ ν…μŠ€νŠΈ ν˜•μ‹μ˜ νŒŒμΌμž…λ‹ˆλ‹€.
Binary ν˜•μ‹μ˜ νŒŒμΌμ„ 전솑할 λ•Œ 손상될 수 μžˆμœΌλ―€λ‘œ TEXT 둜 λ³€ν™˜ν•˜λ©° μ†ŒμŠ€ νŒŒμΌμ€ λͺ¨λ“  λ°”μ΄λ„ˆλ¦¬κ°€ κ°€λŠ₯ν•˜μ§€λ§Œ 주둜 μΈμ¦μ„œλ‚˜ κ°œμΈν‚€κ°€ λ©λ‹ˆλ‹€.

μ‹€μ œλ‘œ Base64 μΈμ½”λ”©λœ 데이타에 포맷에 처음과 끝 뢀뢄에 -----BEGIN, -----END 에 νŒŒμΌμ— λŒ€ν•œ νƒ€μž… 정보가 λ“€μ–΄κ°€λŠ”λ°
μ–΄λ–€ λ°”μ΄λ„ˆλ¦¬ νŒŒμΌμ„ PEM 으둜 λ³€ν™˜ν–ˆλŠ”μ§€ κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄ 파일의 맨 μ•žμ— dash(-) λ₯Ό 5 개 λ„£κ³  BEGIN 파일 μœ ν˜•μ„ λ„£κ³  λ‹€μ‹œ dash(-) λ₯Ό 5개 뒀에 END νŒŒμΌμœ ν˜• ꡬ문을 μ‚¬μš©ν•©λ‹ˆλ‹€.

μΈμ¦μ„œ PEM 예제

PKI μΈμ¦μ„œλŠ” BEGIN CERTIFICATE ꡬ문으둜 μ‹œμž‘ν•©λ‹ˆλ‹€.

-----BEGIN CERTIFICATE-----
MIIDczCCAlugAwIBAgIBBDANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJLUjEN
MAsGA1UECgwES0lTQTEuMCwGA1UECwwlS29yZWEgQ2VydGlmaWNhdGlvbiBBdXRo 
...
UNkAAk/bg9ART6RCVmE6fhMy04Qfybo=
-----END CERTIFICATE-----

κ°œμΈν‚€ PEM 예제

κ°œμΈν‚€λŠ” 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-----

CRT

μΈμ¦μ„œ νŒŒμΌμ΄λ‹€ λΌλŠ” 의미둜 뢙이며, 거의 λŒ€λΆ€λΆ„ PEM 포맷이며, 주둜 μœ λ‹‰μŠ€/λ¦¬λˆ…μŠ€ 기반 μ‹œμŠ€ν…œμ—μ„œ ν†΅μš©λ˜λŠ” ν™•μž₯자 이닀. cer ν™•μž₯자λ₯Ό 뢙이기도 ν•œλ‹€. νŒŒμΌμ„ λ…ΈνŠΈνŒ¨λ“œ λ“±μœΌλ‘œ μ—΄μ–΄ 보면 PEM 포맷인지 λ°”μ΄λ„ˆλ¦¬ 포맷인지 μ•Œμˆ˜ μžˆμ§€λ§Œ, 99% λŠ” Base64 PEM 포맷이라고 봐도 λ¬΄λ°©ν•˜λ‹€. (.crt ν™•μž₯자 λ³΄λ‹€λŠ” 파일 포맷이 λͺ…ν™•ν•˜λ„λ‘ .pem λ˜λŠ” .der λΆ™μ΄λŠ”κ±Έ ꢌμž₯)

CER

λŒ€λΆ€λΆ„ PEM 포맷이며 λ°”μ΄λ„ˆλ¦¬ ν¬λ§·μΌλ•Œλ„ 있으며, 주둜 Windows κΈ°λ°˜μ—μ„œ μΈμ¦μ„œ νŒŒμΌμž„μ„ κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©λ˜λŠ” ν™•μž₯자 이닀. crt ν™•μž₯μžμ™€ 거의 λ™μΌν•œ 의미이며, cer μ΄λ‚˜ crt ν™•μž₯자 λͺ¨λ‘ μœˆλ„μš°μ—μ„œλŠ” κΈ°λ³Έ μΈμ‹λ˜λŠ” ν™•μž₯μžμ΄λ‹€. μ €μž₯ν• λ•Œ μ–΄λ–€ 포맷으둜 ν–ˆλŠ”μ§€μ— 따라 λ‹€λ₯΄λ©°, 파일 μƒμ„±μžκ°€ 이름 뢙이기 λ‚˜λ¦„μ΄λ‹€.

DER

DER(Distinguished Encoding Rules)ν˜•μ‹μœΌλ‘œ μΈμ½”λ”©λœ λ°”μ΄λ„ˆλ¦¬ 파일둜 주둜 μΈμ¦μ„œ ν™•μž₯자둜 많이 μ‚¬μš©ν•©λ‹ˆλ‹€.
λ°”μ΄λ„ˆλ¦¬ 인코딩 포맷을 μ½μ„μˆ˜ μžˆλŠ” μΈμ¦μ„œ 라이브러리λ₯Ό ν†΅ν•΄μ„œλ§Œ λ‚΄μš© 확인이 κ°€λŠ₯ν•˜λ‹€
λ°”μ΄λ„ˆλ¦¬μ΄λ―€λ‘œ μ—λ””ν„°λ‘œ μ—΄λ©΄ λ‹€ κΉ¨μ Έλ³΄μ΄λ―€λ‘œ BerEditor둜 열어보면 λ©λ‹ˆλ‹€.

CSR

CSR(Certificate Signing Request) 은 인증기관(CA)에 μΈμ¦μ„œ λ°œκΈ‰ μš”μ²­μ„ ν•˜λŠ” νŠΉλ³„ν•œ ASN.1 ν˜•μ‹μ˜ 파일이며 κ·Έ μ•ˆμ—λŠ” λ‚΄ κ³΅κ°œν‚€ 정보와 μ‚¬μš©ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜ 정보등이 λ“€μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
CSR μƒμ„±μ‹œ 보톡 PEM ν˜•μ‹μœΌλ‘œ μΈμ½”λ”©ν•΄μ„œ μ „λ‹¬ν•˜λ©° λ‹€μŒκ³Ό 같은 PEM 헀더가 λΆ™μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDZjCCAs8CAQAwajELMAkGA1UEBhMCS1IxETAPBgNVBAgMCHdvb3dhaGFuMREw
DwYDVQQHDAh3b293YWhhbjERMA8GA1UECgwId29vd2FoYW4xETAPBgNVBAsMCHdv
b3dhaGFuMQ8wDQYDVQQDDAZhZGJldGEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
...
-----END NEW CERTIFICATE REQUEST-----

PFX λ˜λŠ” P12

사싀 이 두 ν™•μž₯μžλŠ” 같은 μ—­ν™œμ„ ν•œλ‹€. 즉 PKCS#12 ν˜•μ‹μ˜ 포맷으둜 Personal Information Exchange Format 을 μ˜λ―Έν•œλ‹€.
이 파일의 μš©λ„λŠ” μΈμ¦μ„œ, κ°œμΈν‚€ 그리고 μΈμ¦μ„œ 체인 정보λ₯Ό ν•˜λ‚˜μ˜ λ¬Άμ–΄μ„œ κ°€μ Έμ˜€κΈ°λ‚˜ 내보내기 용으둜 많이 μ‚¬μš©ν•œλ‹€.

KEY

사싀 이 ν™•μž₯μžλŠ” κ°œμΈν‚€ νŒŒμΌμ„ μ•Œλ €μ£ΌκΈ° μœ„ν•΄ μ‚¬μš©ν•œλ‹€. 사싀 KEY νŒŒμΌμ€ PEM ν˜•μ‹ μΌμˆ˜λ„ 있고 DER ν˜•μ‹μΈ λ°”μ΄λ„ˆλ¦¬ 포맷인 κ²½μš°λ„ μžˆμ–΄μ„œ 직접 νŒŒμΌμ„ μ—΄μ–΄μ„œ 확인 해봐야 ν•œλ‹€. 즉 ν™•μž₯자 λ§ŒμœΌλ‘œλŠ” 파일 μƒνƒœ 확인은 μ•ˆλœλ‹€.