Convert Certificate Format SSL 인증서 변환 가이드

Base64 PEM 파일 단순 조합

적용 환경에 따라서, 1개의 pem 파일로만 적용해야 하는 경우, pem 조합 예제 (파일 순서 유의)
(cat, type 명령어가 아닌 notepad 같은 텍스트 편집기로도 조합 가능 )
(조합된 all_cert.pem 을 텍스트 편집기로 열어서, pem 내용끼리 라인 구분되어 있는지 확인 필수)

*nix 환경 cat "개인키.pem" "서버인증서.pem" "체인.pem" "루트.pem" > all_cert.pem
Windows 환경 type "개인키.pem" "서버인증서.pem" "체인.pem" "루트.pem" > all_cert.pem

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 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 저장소sslcert.co.kr.jks

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

JavakeyStore 에서 특정 인증서 삭제 (서버인증서,체인인증서,루트인증서 등)
keytool -delete -alias 삭제대상Alias -keystore 저장소.sslcert.co.kr.jks -storepass 키스토어암호

(작업전, keytool -list -v -keystore 저장소.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 도메인_주문번호.all.crt.pem -out 변환생성파일.p7b (발급완료 zip 기준 : 서버+체인+루트)
openssl crl2pkcs7 -nocrl -certfile root-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

PFX(PKCS#12) Oracle Wallet 변환

Oracle HTTP Server 에서 orapki 툴을 이용해서 Wallet (cwallet.sso,ewallet.p12) 으로 변환 가능합니다. 설치/적용 가이드 보기

PFX(PKCS#12) IBM kdb 변환

IBM HTTP/Websphere 서버에서 ikeyman 툴을 이용해서 kdb 으로 변환 가능합니다. 설치/적용 가이드 보기

PEM Domino Keyring (.Kyr) 변환

Notes/Domino 서버에서 Kyrtool 툴을 이용해서 Keyring 포맷으로 변환 가능합니다. 변환 명령행 예제 보기
컨텐츠의 무단 전재/복사 및 이메일 주소의 수집/이용을 허용하지 않습니다.
bitSyrup 2023. All rights reserved.