Manual/OpenSSL

[OpenSSL] PKCS#12 (PFX) ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ ๋ช…๋ น์–ด

JayKim๐Ÿ™‚ 2023. 4. 7. 10:02

PKCS#12 ๋Š” Personal Information Exchange Syntax ๋กœ์„œ RFC7292 ์— ์ •์˜ ๋œ ํ‘œ์ค€ ํฌ๋งท์ด๋‹ค.

P12 ํ™•์žฅ์ž ๋˜๋Š” pfx ํ™•์žฅ์ž ํŒŒ์ผ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ OpenSSL ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์ด๋‹ค.
์ด ๋ช…๋ น์–ด์— ๋Œ€ํ•œ Man ํŒŒ์ผ ๋งํฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค

https://www.openssl.org/docs/man3.0/man1/openssl-pkcs12.html

PKCS#12 ํŒŒ์ผ ์ƒ์„ฑ

openssl pkcs12 -export -in ecdsa_cert.pem -inkey ecdsa_private_key.pem -out file.p12 -name "My Certfiicate" -passout pass:asdf

์œˆ๋„์šฐ ๊ฒฝ์šฐ์—๋Š” -passout pass:์•”ํ˜ธ ๊ฐ’์„ ์ฃผ์ž…์„ ์ด๋ ‡๊ฒŒ ์ฃผ์–ด์•ผ ํ•˜์ง€๋งŒ
์œˆ๋„์šฐ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ๋Š” -passout ์˜ต์…˜์„ ์•ˆ์ฃผ์–ด๋„ ๋œ๋‹ค.
๊ทธ ๋•Œ๋Š” ํ™”๋ฉด์— ์ž…๋ ฅํ•˜๋Š” ๋ฉ”์„ธ์ง€๊ฐ€ ๋œจ๋Š”๋ฐ ๊ทธ ๋•Œ ์ž…๋ ฅํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.

์ด P12 ํฌ๋งท์— ๋Œ€ํ•œ ASN.1 ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 -- ============================
 -- The PFX PDU
 -- ============================

 PFX ::= SEQUENCE {
     version    INTEGER {v3(3)}(v3,...),
     authSafe   ContentInfo,
     macData    MacData OPTIONAL
 }

 MacData ::= SEQUENCE {
     mac        DigestInfo,
     macSalt    OCTET STRING,
     iterations INTEGER DEFAULT 1
     -- Note: The default is for historical reasons and its use is
     -- deprecated.
 }

์ƒ์„ฑํ•œ file.p12 ํŒŒ์ผ์„ BerEditor ๋กœ Decodeing ํ•œ ํ™”๋ฉด์ด๋‹ค.

์ถ”๊ฐ€ ์ธ์ฆ์„œ ํฌํ•จ ์ƒ์„ฑ

openssl pkcs12 -export -in ecdsa_cert.pem -inkey ecdsa_private_key.pem -out file.p12 -name "My Certfiicate" -passout pass:asdf -certfile more_cert.pem

-certfile : ์ถ”๊ฐ€ํ•  ์ธ์ฆ์„œ ํŒŒ์ผ ๊ฒฝ๋กœ

P12 ๋‚ด ์ธ์ฆ์„œ๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅ (-clcerts -nokeys)

openssl pkcs12 -in file.p12 -clcerts -nokeys -out file.crt

P12 ๋‚ด ๊ฐœ์ธํ‚ค๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅ

openssl pkcs12 -in file.p12 -nocerts -out file.key

P12 ๋‚ด ๊ฐœ์ธํ‚ค์— pass phrase ๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š๊ณ  ํŒŒ์ผ๋กœ ์ €์žฅ

openssl pkcs12 -in file.p12 -out file.pem -nodes

P12 ์ •๋ณด ์ถœ๋ ฅ

openssl pkcs12 -info -in file.p12

์ด๋•Œ ํŒจ์Šค์›Œ๋“œ ์ž…๋ ฅ์„ ๋‘๋ฒˆ ๋ฐ›๊ฒŒ ๋˜๋Š” ๋ฐ ์ฒซ๋ฒˆ์งธ๋Š” P12 ํŒŒ์ผ์— ๋Œ€ํ•œ ํŒจ์Šค์›Œ๋“œ์ด๊ตฌ ๋‘๋ฒˆ์งธ๋Š” ๊ฐœ์ธํ‚ค ์•”ํ˜ธ ํŒจ์Šค์›Œ๋“œ์ด๋‹ค.
ํ˜„์žฌ ์œˆ๋„์šฐ ํ™˜๊ฒฝ์€ ํŒจ์Šค์›Œ๋“œ ์ž…๋ ฅ๊ณผ ๊ด€๋ จํ•ด์„œ๋Š” ์ฒ˜๋ฆฌ๊ฐ€ ์ž˜ ์•ˆ๋˜๋Š”๊ฑฐ ๊ฐ™๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์ธ์ฆ์„œ์™€ ๊ฐœ์ธํ‚ค๋ฅผ ๊ฐ™์ด ๋ฌถ์–ด์„œ ์‚ฌ์šฉ ํ•  ๋•Œ p12 ๋˜๋Š” pfx ๋ผ๋Š” ํ™•์žฅ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š”
PKCS#12 ํ‘œ์ค€์— ๋”ฐ๋ผ ๋งŒ๋“ค์–ด์ง€ ํŒŒ์ผ์„ ์‚ฌ์šฉ ํ•œ๋‹ค๊ตฌ ๋ณด๋ฉด ๋œ๋‹ค.