HTTPS 용 인증서를 발급받으려면 Verisign 이나 thawte, Comodo 같은 인증서 발급 기관을 통해서 절차에 따라 사이트 인증을 마친 후에 발급받아야 하며 이 과정에서 일정한 비용이 발생합니다.

개인 사이트라면 무료로 인증서를 발급하는 프로젝트인 Lets' Encrypt 를 통해 3개월 유효기간 인증서를 받을 수 있습니다.


AWS 를 사용한다면 AWS Certificate Manager 를 사용하여 무료로 인증서를 발급받을 수 있습니다.


CSR 생성과 발급

공개키 기반(PKI) 은 공개키와 개인키 두 개의 키 쌍을 사용하며 개인키는 절대 유출되어서는 안되며 사용자만 소유하고 있어야 합니다.

발급 신청을 하기 위해서는 키쌍을 생성하고 인증서 발급 요청(CSR; Certificate Signing Request) 파일을 만들어서 CA 에 전달해야 합니다.


인증서 발급 기관에 HTTPS 용 인증서를 신청하는 프로세스와 명령어(openssl 사용)는 일반적으로 다음과 같습니다.


  1. HTTPS 를 적용하려는 서버 또는 신청자의 PC 에서 키쌍을 생성

    openssl genrsa -aes256 -out /etc/pki/tls/private/example.com.key 2048
    BASH
  2. 생성한 공개키를 넣어서 CSR 파일을 만들고 개인키로 전자서명

    openssl req -new -key /etc/pki/tls/private/example.com.key -out /etc/pki/tls/certs/example.com.csr
    BASH
  3. CSR 을 인증서 발급기관에 전송

  4. 인증서 발급기관은 CSR 에 있는 사용자가 보낸 전자서명을 CSR 에 포함된 공개키로 서명 검증

  5. 사용자 공개키 검증이 끝났으면 사용자의 공개키와 추가 정보(도메인, 이메일 주소등)를 추가하여 SSL 인증서 발급(정확히는 발급기관의 개인키로 전자서명)

  6. 생성된 인증서를 웹 서버에 적용


PKI 에 익숙하지 않은 경우 국내의 인증서 발급 대행 기관들이 키 쌍 생성도 대행해서 인증서를 발급해 주지만 개인키 유출 우려가 있으므로 직접 키 쌍을 생성하고 CSR 을 만들어서 발급 받는 것을 권장합니다.


같이 보기