본문 바로가기

OS/Network

Network - OpenSSL 및 Keytool로 SSL 인증서 변환하기

728x90

SSL 인증서 변환 가이드: OpenSSL과 Keytool을 사용한 포맷 변경 방법

SSL 인증서 관리는 보안과 네트워크 통신에서 중요한 요소입니다.

다양한 시스템 환경에서 인증서 파일을 사용하려면 인증서를 여러 형식으로 변환할 수 있어야 합니다.

이 글에서는 SSL 인증서를 .pfx, .pem, .jks 등 다양한 포맷으로 변환하는 방법을 단계별로 설명합니다.

 


1. .crt와 .key 파일을 조합하여 .pfx 파일 생성

OpenSSL을 사용해 .crt 파일과 .key 파일을 조합하여 .pfx 파일을 생성할 수 있습니다.

.pfx 파일은 개인 키와 인증서를 함께 보관할 수 있는 포맷입니다.

openssl pkcs12 -export -in samso.tistory.com.crt -inkey private.key -out samso.tistory.com.pfx

 

  • 설명: 이 명령어는 서버 인증서(.crt)와 개인 키(.key)를 합쳐 .pfx 파일을 만듭니다.
  • 사용 예시: SSL 인증서를 한 번에 Import할 때 .pfx 포맷은 편리합니다.
  • 주의사항: 생성되는 .pfx 파일의 암호를 꼭 기억하고 안전하게 보관하세요.

2. .pfx 파일에서 .crt와 .key 파일 추출

2.1 .pfx에서 .crt 파일 추출

.pfx 파일에서 인증서만 추출해 PEM 형식으로 저장하려면 다음 명령어를 사용합니다.

openssl pkcs12 -in samso.tistory.com.pfx -clcerts -nokeys -out samso.tistory.com.crt.pem

 

 

  • 설명: .pfx 파일에서 인증서만 추출하여 PEM 형식으로 저장합니다. 입력 시 .pfx 파일의 비밀번호가 필요합니다.
  • 출력 예시: samso.tistory.com.crt.pem 파일이 생성됩니다.

2.2 .pfx에서 .key 파일 추출

개인 키를 추출할 때는 다음 명령어를 사용합니다.

openssl pkcs12 -in samso.tistory.com.pfx -nocerts -nodes -out private.key

 

  • 설명: 인증서 없이 개인 키만 추출합니다. -nodes 옵션은 암호화되지 않은 키를 추출합니다.
  • 주의사항: 비암호화된 개인 키는 민감한 정보이므로 안전하게 관리해야 합니다.

3. .pfx 파일의 정보 확인

.pfx 파일의 내용을 확인하고 싶을 때는 아래 명령어를 사용하세요.

openssl pkcs12 -info -in samso.tistory.com.pfx
  • 설명: 파일의 인증서, 개인 키, 인증서 체인 등의 정보를 확인할 수 있습니다. 입력 시 비밀번호가 필요합니다.

4. .pfx 파일의 패스워드 변경

.pfx 파일의 암호를 변경하려면 아래 두 단계를 따라야 합니다.

1. 기존 .pfx 파일을 PEM 형식으로 변환합니다.

openssl pkcs12 -in old_samso.tistory.com.pfx -out temp.pem -nodes

2. PEM 파일을 새로운 .pfx 파일로 다시 변환합니다.

openssl pkcs12 -export -out new_samso.tistory.com.pfx -in temp.pem
  • 설명: 이 과정은 기존 암호를 제거하고 새로운 암호를 적용하는 방법입니다.

5. 개인 키 암호화 적용 및 해제

5.1 개인 키 파일 암호화 적용

개인 키를 암호화하여 보안을 강화하려면 다음 명령어를 사용하세요.

openssl rsa -des3 -in samso.tistory.com.key -out _ENCRYPTED_.key.pem
  • 설명: 개인 키 파일에 암호화를 적용하여 PEM 형식으로 저장합니다. 적용 시 비밀번호를 입력해야 합니다.
  • 사용 예시: 안전하게 보관해야 하는 환경에서 개인 키의 보안을 강화할 수 있습니다.

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

openssl rsa -in _ENCRYPTED_.key.pem -out samso.tistory.com.key

 

  • 설명: 암호화된 개인 키의 암호를 해제하고 비암호화된 개인 키 파일을 생성합니다.
  • 주의사항: 비암호화된 개인 키 파일은 민감한 정보이므로 보안에 주의해야 합니다.

6. PEM과 PFX/JKS 변환

6.1 PEM을 PKCS#12 (.pfx)로 변환

PEM 형식의 인증서와 개인 키를 PKCS#12(.pfx)로 변환하려면 다음 명령어를 사용합니다.

openssl pkcs12 -export -name example.com -in cert.pem -inkey private.key -out samso.tistory.com.pfx

 

  • 설명: 여러 인증서 파일을 하나의 .pfx 파일로 변환하여 저장합니다.

6.2 .pfx를 .jks로 변환

Java 기반의 애플리케이션에서 인증서를 사용할 때는 .pfx를 .jks로 변환해야 합니다.

keytool -importkeystore -srckeystore samso.tistory.com.pfx -srcstoretype pkcs12 -destkeystore samso.tistory.com.jks -deststoretype jks
  • 설명: 이 명령어는 .pfx 파일에 포함된 인증서와 개인 키를 Java KeyStore로 변환합니다.
  • Tip: keytool 사용 시 비밀번호가 필요하므로 주의하세요.

7. Java KeyStore (.jks)에서 .pfx로 변환

Java KeyStore 파일(.jks)을 PKCS#12(.pfx) 형식으로 변환하려면 아래 명령어를 사용합니다.

keytool -importkeystore -srckeystore samso.tistory.com.jks -srcstoretype JKS -destkeystore samso.tistory.com.pfx -deststoretype PKCS12
  • 설명: 원본 .jks 파일의 비밀번호가 필요하며, 변환할 대상 .pfx 파일의 암호도 새로 지정할 수 있습니다.

8. Java KeyStore (.jks) 관리 명령어

8.1 KeyStore 비밀번호 변경

기존 .jks 파일의 비밀번호를 변경할 수 있습니다.

keytool.exe -storepasswd -new 새로운_비밀번호 -keystore samso.tistory.com.jks

8.2 키 비밀번호 변경

특정 키의 비밀번호를 변경하려면 다음 명령어를 사용합니다.

keytool.exe -keypasswd -alias samso.tistory.com -keystore samso.tistory.com.jks

8.3 Alias 변경

Alias 이름을 변경하여 KeyStore 내 인증서 관리를 개선할 수 있습니다.

keytool.exe -changealias -keystore samso.tistory.com.jks -alias 기존Alias -destalias 새로운Alias
  • Tip: 변경 전 keytool -list -v -keystore cert.jks 명령어로 기존 Alias를 확인하세요.

9. OpenSSL을 이용한 포맷 변환 명령어

PEM ↔ DER 변환

PEM to DER

openssl x509 -outform DER -in cert.pem -out cert.der

 

DER to PEM

openssl x509 -inform DER -in cert.der -out cert.pem

PEM to P7B 변환

PEM 형식을 PKCS#7(.p7b)로 변환하려면 다음 명령어를 사용하세요.

openssl crl2pkcs7 -nocrl -certfile cert.pem -out cert.p7b

CER/PrivateKey를 .pfx로 변환

openssl pkcs12 -export -in cert.cer -inkey private.key -certfile ca-chain.cer -out cert.pfx

 

728x90
반응형