본문 바로가기
IT

Azure에서 구매한 SSL .pfx 인증서에서 .crt chane .key .csr추출 하기

by SOGNOD 2024. 8. 2.
반응형

Azure SSL PFX 파일 우분투에 설치 방법

Azure에서 SSL 인증서를 구매하면 IIS용 .pfx 파일만을 제공 합니다...이건 카페24가 좋은 듯

Azure에서 구매한 .pfx 파일을 다운로드받아
아파치나, node.js 에 설치하기 위해서는 .crt .key .csr 파일로 변환 해야 합니다.

목차

  1. .pfx 파일에서 개인 키 추출하기
  2. 서버 인증서 추출하기
  3. 체인 인증서(중간 인증서 및 루트 인증서) 추출하기
  4. CSR 파일 생성 (기존 키와 인증서 사용)

추출 작업은 openssl 을 사용해서 진행 합니다.

 

1. .pfx 파일에서 개인 키 추출하기

먼저 다운로드 받은 .pfx 파일에서 개인 키를 추출합니다.

openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain.key (키 없이 생성)

이 명령어는 암호화가 해제된 개인 키 파일을 domain.key 파일로 저장합니다.


2. 서버 인증서 추출하기

.pfx 파일에서 서버 인증서를 추출합니다:

openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.crt

이 명령어는 인증서를 `domain.crt`로 저장합니다.



3. 체인 인증서(중간 인증서 및 루트 인증서) 추출하기

인증서 체인(certification chain)은 최종 엔티티(서버)의 인증서와 신뢰할 수 있는 루트 인증 기관(CA) 사이의 모든 중간 인증서를 포함합니다

openssl pkcs12 -in domain.pfx -nodes -nokeys -out domain_chained.crt

알 수 없는 이유로, 체인(chained) 인증서에 오류가 발생할때? 공개키 md5 해시 개인키 비교해 봅니다.
openssl x509 -noout -modulus -in domain_chained.crt | openssl md5
openssl rsa -noout -modulus -in domain.key | openssl md5

키 가 다르게 추출되었다면? domain.crt 값을 domain_chained.crt 에 다른 키 값으로 수정해도 됩니다. 

 

4. CSR 파일 생성 (기존 키와 인증서 사용)

기존 키와 인증서를 사용하여 CSR 파일을 생성하려면 먼저 다음과 같은 정보를 포함한 구성 파일을 만듭니다.
csr 은 인증서 구매시 사용할 필요가 없을 듯 하나 참고용 으로...

구성 파일 작성 (csr_config.cnf)

[ req ]
default_bits       = 2048
distinguished_name = req_distinguished_name
prompt             = no

[ req_distinguished_name ]
C  = Country Name (2 letter code)
ST = State or Province Name (full name)
L  = Locality Name (eg, city)
O  = Organization Name (eg, company)
OU = Organizational Unit Name (eg, section)
CN = Common Name (e.g. server FQDN or YOUR name)

이 구성 파일은 Domain 정보와 동일한 값을 등록 합니다.

CSR 파일 생성

다음 명령어로 CSR 파일을 생성합니다

openssl req -new -key domain.key -out csr_request.csr -config csr_config.cnf

이 명령어는 위에서 추출한 암호화 해제된 domain.key 파일을 사용하여 csr_request.csr 파일을 생성합니다.

  • private.key
    CSR 생성을 위해 사용할 개인 키 파일입니다.
  • request.csr
    생성될 CSR 파일의 이름입니다.
  • csr_config.cnf
    위에서 작성한 설정 파일입니다.
  • Enter Import Password
    없으면 그냥 Enter / .pfx 파일 자체를 보호하기 위해 설정된 암호를 입력해야 합니다. 이 암호는 .pfx 파일을 생성할 때 설정된 것이며, 해당 파일에 포함된 내용(개인 키, 인증서 등)에 접근하기 위해 필요합니다.
  • Enter PEM pass phrase
    새로운 개인키 등록 / 개인 키를 추출한 후 이를 보호하기 위한 암호입니다. 만약 개인 키를 보호하기 위해 암호를 설정하고 싶다면 이 암호를 입력하면 됩니다. 이 암호를 나중에 개인 키를 사용할 때 입력해야 합니다.
    암호 보호를 원하지 않는다면 그냥 빈 암호를 입력하면 됩니다. 
    (Enter 키를 두 번 눌러 빈 암호를 설정할 수 있다고 하는데 저는 오류 발생 했음)

이 과정을 통해 자동으로 CSR이 생성되며, 해당 CSR을 인증 기관(CA)에 제출하여 SSL 인증서를 발급받을 수 있습니다.

이렇게 하면 PFX 파일로부터 .crt, .key, .csr 파일을 성공적으로 추출하고 생성할 수 있습니다.

** 다음에는 위에서 추출한 .crt, key 파일을 Node.js 와 Apache2 서버에 설치하는방법을 알아봅니다.

반응형