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
'OS > Network' 카테고리의 다른 글
Network - SSL 인증서 포맷 이해하기 (2) | 2024.11.09 |
---|---|
Network - ARP(Address Resolution Protocol) 명령어란? (0) | 2024.05.03 |
Network - 가상네트워크 (Host-only / NAT / Bridged) (2) | 2023.12.08 |
네트워크 상태 확인 명령어 netstat 이란? (0) | 2023.03.23 |
네트워크 경로 추적 명령어 tracert (traceroute) 이란? (0) | 2023.03.13 |