[OpenSSL] PKCS#12 (PFX) νμΌ λ§λ€κΈ° λͺ λ Ήμ΄
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 νμ€μ λ°λΌ λ§λ€μ΄μ§ νμΌμ μ¬μ© νλ€κ΅¬ 보면 λλ€.