오늘은 PKCS#12 에 관해서 정리해보겠습니다.
우선, PKCS 자체의 의미는 공개 키 암호 표준(Public-Key Cryptography Standard) 를 의미하고, 공개 키 암호에 대한 사용 방식을 정의한 프로토콜입니다.
이중 #12 의 경우 "Personal Information Exchange Syntax Standard" 라는 이름을 가지고 있네요.
wikipedia를 참고하면, ( https://en.wikipedia.org/wiki/PKCS_12 )
In cryptography, PKCS #12 defines an archive file format for storing many cryptography objects as a single file. It is commonly used to bundle a private key with itsX.509 certificate or to bundle all the members of a chain of trust.[1]
라고 합니다.
많은 경우에 흔히 말하는 인증서와 키가 합쳐진 형태로 이해하기도 합니다.
PKCS#12 형태의 파일을 만드는 절차에 인증서와 키가 필요합니다.
http://www-01.ibm.com/support/knowledgecenter/SSWHYP_4.0.0/com.ibm.apimgmt.cmc.doc/task_apionprem_generate_pkcs_certificate.html?lang=ko 를 참고로 설명하겠습니다.
PKCS#12 파일을 생성하기 위해서는
필요한 것: 개인키(ex> key.pem), 인증 기관에서 서명한 인증서(ex> certificate.pem), CA기관의 하나 이상의 인증서(중간 CA인증서라고도 함)
프로시저
- 중간 CA 인증서가 있는 경우 이를 pem파일과 연결시켜 caChain을 빌드
- cat ca1.pem ca2.pem ca3.pem > caChain.pem
- 개인키, 서명된 인증서, 1단계에서 작성한 CA파일을 포함하는 PKCS#12 파일
- openssl pkcs12 -inkey key.pem -in certificate.pem -export -out certificate.p12 -CAfile caChain.pem -chain
실제 자세한 내용은 복잡하다고 하고, 이정도만 우선 알아도 될 것 같습니다.