IT

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

SOGNOD 2024. 8. 2. 00:45
반응형

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 서버에 설치하는방법을 알아봅니다.

반응형