PFX p12 변환 - PFX p12 byeonhwan

인증서 및 해당 개인 키를 PEM 또는 다른 형식으로 가져온 경우 Horizon 서버의 Windows 인증서 저장소로 인증서를 가져오려면 먼저 PKCS#12(PFX) 형식으로 변환해야 합니다. Windows 인증서 저장소에서 인증서 가져오기 마법사를 사용하는 경우 PKCS#12(PFX) 형식이 필요합니다.

다음 방법 중 하나로 인증서 파일을 가져올 수 있습니다.

  • CA에서 인증서 Keystore 파일을 가져옵니다.
  • Horizon 배포 시 설정된 중간 서버에서 인증서 및 개인 키를 다운로드합니다.
  • 조직에서 인증서 파일을 제공합니다.

인증서 파일은 다양한 형식으로 제공됩니다. 예를 들어, PEM 형식은 Linux 환경에서 자주 사용됩니다. 다음 확장명의 인증서 파일, 키 파일 및 CSR 파일이 포함될 수 있습니다.

server.crt
server.csr
server.key

CRT 파일은 CA에 의해 반환된 SSL 인증서를 포함합니다. CSR 파일은 원본 인증서 서명 요청 파일이며 필요하지 않습니다. 키 파일은 개인 키를 포함합니다.

사전 요구 사항

  • 시스템에 OpenSSL이 설치되어 있는지 확인합니다. opensslhttp://www.openssl.org에서 다운로드할 수 있습니다.
  • 또한 CA에 의해 반환된 SSL 인증서의 루트 인증서를 시스템에서 사용할 수 있는지 확인합니다.

프로시저

  1. CRT 및 키 파일을 OpenSSL 설치 디렉토리로 복사합니다.

    예: cd c:\OpenSSL-Win32\bin

  2. Windows 명령 프롬프트를 열고, 필요한 경우 OpenSSL 설치 디렉토리로 이동합니다.
  3. 인증서 파일 및 개인 키에서 PKCS#12(PFX) Keystore 파일을 생성합니다.

    예: openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt -certfile CACert.crt

    이 예에서 CACert.crt는 인증 기관에 의해 반환된 루트 인증서의 이름입니다.

    또한 Windows 인증서 저장소는 PFX 확장명으로 생성된 Keystore를 수락합니다. 예: -out server.pfx

  4. PKCS#12 (PFX) 파일을 보호하기 위한 내보내기 암호를 입력합니다.

The following instructions will guide you through the process of generating a PFX or P12 file using OpenSSL commands.

OpenSSL Instructions

To complete the instructions below you will need to have OpenSSL installed on your computer. Windows users can download a copy of the OpenSSL installer here: Wiki OpenSSL

PFX p12 변환 - PFX p12 byeonhwan

For OSX users, OpenSSL should be installed by default on your machine. 

After you have downloaded and installed the exe or MSI file, click on the Windows key or on your keyboard or click on the Windows Icon in your lower left corner of your screen and type: OpenSSL

The following result should be displayed: Win64 OpenSSL Command Prompt app.

PFX p12 변환 - PFX p12 byeonhwan

Clicking the app will open a command line console as shown, the default location will be c:\users\%username%\

Please note, this is the default location where your CSR and Private key will be saved.

To create an P12 file or a PFX file, copy the following to the command line with your own specifics:
---

Create a PFX file:

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt

---

Create a P12 file:

openssl pkcs12 -export -out certificate.p12 -inkey privateKey.key -in certificate.crt

---

  1. Certificate.pfx = The PFX file that will be created after the query has been completed successful. You can change it also to .p12 extension id needed.
  2. PrivateKey.key = The Private key you have saved after creating your CSR.
  3. Certificate.crt = The certificate file you received after completing all validation steps in the order.

Example:

PFX p12 변환 - PFX p12 byeonhwan

Here is the plain text version of the example, we have copied and paste into our terminal:

openssl pkcs12 -export -out c:\createpfx\certificate.pfx -inkey c:\createpfx\private.key -in c:\createpfx\certificate.crt

Note:  This openssl command created 1 file certificate.pfx in the folder c:\createpfx.

Example P12 and PFX:

PFX p12 변환 - PFX p12 byeonhwan

◾ Sectigo PositiveSSL ▷ 22% 가격 할인 프로모션 진행중. 자세히보기
◾ Sectigo PositiveSSL Wildcard ▷ 타사이전 결제액 50% 특별 포인트 적립 진행중. 자세히보기

OpenSSL 이용한 .pfx 생성 / pem 추출 / PrivateKey 암호화 적용,해제

.crt 및 .key 를 조합하여 .pfx 만들기

(CSR 자동생성으로 발급시, zip 파일에 pfx / jks 파일이 기본 첨부 제공됩니다. - 별도 변환 불필요)

openssl pkcs12 -export -in www.sslcert.co.kr.crt -inkey private.key -out www.sslcert.co.kr.pfx

.pfx 에서 .crt 추출하기 (.pfx 암호 필요)

openssl pkcs12 -in www.sslcert.co.kr.pfx -clcerts -nokeys -out www.sslcert.co.kr.crt.pem

.pfx 에서 .key 추출하기 (.pfx 암호 필요)

openssl pkcs12 -in www.sslcert.co.kr.pfx -nocerts -nodes -out private.key

.pfx 에 포함된 인증서 확인 (.pfx 암호 필요)

openssl pkcs12 -info -in www.sslcert.co.kr.pfx

.pfx 패스워드(암호) 변경

1) openssl pkcs12 -in old_www.sslcert.co.kr.pfx -out temp.pem -nodes
2) openssl pkcs12 -export -out new_www.sslcert.co.kr.pfx -in temp.pem

Enter Export Passord: (새로운 .pfx 패스워드 입력)
Verifying - Enter Export Password:

개인키 파일에 암호화 적용 (패스워드 적용)

openssl rsa -des3 -in www.sslcert.co.kr.key -out _ENCRYPTED_.key.pem

writing RSA key
Enter PEM pass phrase: (개인키 PEM 암호화 적용 패스워드 입력)
Verifying - Enter PEM pass phrase:

암호화 해제된 개인키 파일 생성

openssl rsa -in _ENCRYPTED_.key.pem -out www.sslcert.co.kr.key

Enter pass phrase for _ENCRYPTED_.key.pem: (개인키 PEM 패스워드 입력)
writing RSA key

PEM/PFX JavakeyStore(.jks) 변환

PEM 을 PKCS#12 으로 변환

(CSR 자동생성으로 발급시, zip 파일에 pfx / jks 파일이 기본 첨부 제공됩니다. - 별도 변환 불필요)

cat domain.crt chain1.crt chain2.crt root.crt > cert.pem - 1개 cert.pem 파일로 통합

openssl pkcs12 -export -name example.com -in cert.pem -inkey private.key -out www.sslcert.co.kr.pfx - .pfx 파일로 저장

.pfx 에서 .jks 변환

(CSR 자동생성으로 발급시, zip 파일에 pfx / jks 파일이 기본 첨부 제공됩니다. - 별도 변환 불필요)

keytool -importkeystore -srckeystore www.sslcert.co.kr.pfx -srcstoretype pkcs12 -destkeystore www.sslcert.co.kr.jks -deststoretype jks

* pfx 에 개인키, 서버인증서, 체인인증서, 루트인증서 가 포함되어 있는 경우, KeyStore 에 모두 Import 됨

대상 키 저장소 비밀번호 입력: ******
새 비밀번호 다시 입력: ******
소스 키 저장소 비밀번호 입력: ****** (pfx암호)
www.securesign.kr 별칭에 대한 항목이 성공적으로 임포트되었습니다.
임포트 명령 완료: 성공적으로 임포트된 항목은 1개, 실패하거나 취소된 항목은 0개입니다.

JavakeyStore(.jks) PFX 변환

JavakeyStore 를 PKCS#12 으로 변환

(CSR 자동생성으로 발급시, zip 파일에 pfx / jks 파일이 기본 첨부 제공됩니다. - 별도 변환 불필요)

keytool -importkeystore -srckeystore www.sslcert.co.kr.jks -srcstoretype JKS -srcstorepass "password" -destkeystore www.sslcert.co.kr.pfx -deststoretype PKCS12 -deststorepass "password"

* .jks 파일을 .pfx 파일로 변환 저장 (원본 jks 파일 패스워드 필요, 대상 pfx 패스워드 지정)

JavakeyStore(.jks) 의 비밀번호, Alias 변경

KeyStore 비밀번호 변경

keytool.exe -storepasswd -new 변경될 비밀번호 -keystore www.sslcert.co.kr.jks

키 저장소 비밀번호 입력: (기존 KeyStore 비밀번호)

Key 비밀번호 변경

keytool.exe -keypasswd -alias www.sslcert.co.kr -keystore www.sslcert.co.kr.jks

키 저장소 비밀번호 입력: (KeyStore 비밀번호)
<www.sslcert.co.kr>에 대한 키 비밀번호를 입력하십시오. (CSR 자동생성의 경우 Key 비밀번호는 KeyStore 비밀번호와 같음)
새 <www.sslcert.co.kr>에 대한 키 비밀번호:
새 <www.sslcert.co.kr>에 대한 키 비밀번호 다시 입력:

Alias 별칭이름 변경

keytool.exe -changealias -keystore www.sslcert.co.kr.jks -alias www.sslcert.co.kr -destalias 변경될 Alias 이름

(작업전, keytool -list -v -keystore cert.jks 내역 확인 필수)

JavakeyStore(.jks) 인증서 확인/추가/삭제

JavakeyStore(.jks) 에 포함된 인증서 확인

keytool -list -v -keystore www.sslcert.co.kr.jks

개인키, 서버인증서, 체인인증서, 루트인증서 등 포함된 인증서 목록이 출력 됨

키 저장소 비밀번호 입력: *****
키 저장소 유형: JKS
키 저장소 제공자: SUN
..
키 저장소에 1개의 항목이 포함되어 있습니다.
..
별칭 이름(Alias): www.sslcert.co.kr
생성 날짜: 2015. 5. 26
항목 유형: PrivateKeyEntry
....
서버인증서
체인인증서
루트인증서

JavakeyStore 에 인증서 추가

keytool -import -trustcacerts -alias 설정할Alias -file cert.pem -keystore www.sslcert.co.kr.jks

(작업전, keytool -list -v -keystore cert.jks 내역 확인 필수)

JavakeyStore 에서 특정 인증서 삭제

keytool -delete -alias 삭제대상Alias -keystore www.sslcert.co.kr.jks -storepass 키스토어암호

(작업전, keytool -list -v -keystore cert.jks 내역 확인 필수)

OpenSSL 이용한 인증서 포맷 변경(변환)

PEM DER (바이너리)

인증서 : openssl x509 -outform DER -in 원본인증서.pem -out 변환인증서.der
개인키 : openssl rsa -in 원본개인키.pem -pubout -outform DER -out 변환개인키.der

DER/CER (바이너리) PEM

openssl x509 -inform der -in 원본인증서.der -out 변환생성파일.pem
openssl x509 -in 원본인증서.cer -outform PEM -out 변환생성파일.pem

PEM p7b(pkcs#7)

openssl crl2pkcs7 -nocrl -certfile 도메인_주문번호.unified.crt.pem -out 변환생성파일.p7b (발급완료 zip 기준 : 서버+체인+루트)
openssl crl2pkcs7 -nocrl -certfile ca-chain-bundle.pem -out 변환생성파일.p7b (발급완료 zip 기준 : 체인+루트)
openssl crl2pkcs7 -nocrl -certfile 서버인증서.pem -certfile 루트체인.pem -out 변환생성파일.p7b (개별 파일 통합 기준)

CER/PrivateKey pfx(pkcs#12)

openssl pkcs12 -export -in 서버인증서.cer -inkey 개인키.key -certfile 루트체인.cer -out 변환생성파일.pfx

PEM IBM Keyring (.Kyr) 변환

IBM Domino Kyrtool 을 이용해서 Keyring 포맷으로 변환 예제
SSL 인증서 발급 완료시 Keyring 포맷은 제공되지 않으므로, 직접 변환해서 적용해야 합니다.

기타