단계 2: 인증서 서명 요청(CSR) 및 인증서 생성 - AWS CloudHSM

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

단계 2: 인증서 서명 요청(CSR) 및 인증서 생성

HTTPS를 활성화하려면 웹 서버에서 SSL/TLS 인증서와 해당되는 프라이빗 키가 필요합니다. SSL/TLS 오프로드를 사용하려면 클러스터의 HSM에 개인 AWS CloudHSM키를 저장합니다. AWS CloudHSM 이렇게 하려면 Microsoft의 CNG(Cryptography API: Next Generation)용AWS CloudHSM KSP(Key Storage Provider)를 사용하여 인증서 서명 요청(CSR)을 생성합니다. 그런 다음, 인증서 생성을 위해 CSR에 서명하는 인증 기관(CA)에 CSR을 제공합니다.

CSR 생성

Windows 서버의 AWS CloudHSM KSP를 사용하여 CSR을 생성하십시오.

인증서 서명 요청(CSR)을 생성하려면
  1. 아직 역할 추가 및 키를 생성하지 않은 경우 Windows Server에 연결합니다. 자세한 내용은 Amazon EC2 사용 설명서의 인스턴스에 연결을 참조하십시오.

  2. 다음 명령을 사용하여 AWS CloudHSM 클라이언트 데몬을 시작합니다.

    Amazon Linux
    $ sudo start cloudhsm-client
    Amazon Linux 2
    $ sudo service cloudhsm-client start
    CentOS 7
    $ sudo service cloudhsm-client start
    CentOS 8
    $ sudo service cloudhsm-client start
    RHEL 7
    $ sudo service cloudhsm-client start
    RHEL 8
    $ sudo service cloudhsm-client start
    Ubuntu 16.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 18.04 LTS
    $ sudo service cloudhsm-client start
    Windows
    • Windows 클라이언트 1.1.2+의 경우:

      C:\Program Files\Amazon\CloudHSM>net.exe start AWSCloudHSMClient
    • Windows 클라이언트 1.1.1 이상의 경우:

      C:\Program Files\Amazon\CloudHSM>start "cloudhsm_client" cloudhsm_client.exe C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_client.cfg
  3. Windows Server에서 텍스트 편집기를 사용하여 IISCertRequest.inf라는 인증서 요청을 생성합니다. 다음 예제에서는 IISCertRequest.inf 파일의 내용을 보여 줍니다. 이 파일에서 지정할 수 있는 섹션, 키 및 값에 대한 자세한 내용은 Microsoft 설명서를 참조하십시오. ProviderName 값은 변경하지 마십시오.

    [Version] Signature = "$Windows NT$" [NewRequest] Subject = "CN=example.com,C=US,ST=Washington,L=Seattle,O=ExampleOrg,OU=WebServer" HashAlgorithm = SHA256 KeyAlgorithm = RSA KeyLength = 2048 ProviderName = "Cavium Key Storage Provider" KeyUsage = 0xf0 MachineKeySet = True [EnhancedKeyUsageExtension] OID=1.3.6.1.5.5.7.3.1
  4. Windows certreq 명령을 사용해 이전 단계에서 생성한 IISCertRequest.inf 파일에서 CSR을 생성합니다. 다음 예제에서는 CSR을 IISCertRequest.csr이라는 파일에 저장합니다. 인증서 요청 파일에 다른 파일 이름을 사용한 경우 IIS CertRequest .inf를 적절한 파일 이름으로 바꾸십시오. 선택적으로 IIS CertRequest .csr을 CSR 파일의 다른 파일 이름으로 바꿀 수 있습니다.

    C:\>certreq -new IISCertRequest.inf IISCertRequest.csr SDK Version: 2.03 CertReq: Request Created

    IISCertRequest.csr 파일에는 CSR이 포함되어 있습니다. 서명된 인증서를 얻기 위해서는 이 CSR이 필요합니다.

서명된 인증서를 받아 가져옵니다.

프로덕션 환경에서는 일반적으로 CA(인증 기관)을 사용하여 CSR에서 인증서를 생성합니다. 테스트 환경에는 CA가 필요하지 않습니다. CA를 사용하는 경우에는 CSR 파일(IISCertRequest.csr)을 CA에 전송하고 CA를 사용하여 서명된 SSL/TLS 인증서를 생성합니다.

CA 사용의 대안으로 OpenSSL 같은 도구를 사용하여 자체 서명 인증서를 생성할 수 있습니다.

주의

자체 사인된 인증서는 브라우저에서 신뢰하지 않으며 프로덕션 환경에서 사용해서는 안 됩니다. 테스트 환경에서는 이러한 인증서를 사용할 수 있습니다.

다음 절차에서는 자체 서명 인증서를 생성하고 이를 사용해 웹 서버의 CSR을 서명하는 방법을 보여줍니다.

자체 서명된 인증서를 생성하려면
  1. OpenSSL 명령을 사용하여 프라이빗 키를 생성합니다. 선택적으로 SelfSignedCA.key 를 개인 키가 포함된 파일 이름으로 바꿀 수 있습니다.

    openssl genrsa -aes256 -out SelfSignedCA.key 2048 Generating RSA private key, 2048 bit long modulus ......................................................................+++ .........................................+++ e is 65537 (0x10001) Enter pass phrase for SelfSignedCA.key: Verifying - Enter pass phrase for SelfSignedCA.key:
  2. OpenSSL 명령을 사용하여 이전 단계에서 생성한 프라이빗 키를 통해 자체 서명 인증서를 생성합니다. 이것은 대화식 명령입니다. 화면의 지침을 읽고 프롬프트의 메시지를 따릅니다. SelfSignedCA.key 파일을 개인 키가 포함된 파일 이름 (다른 경우) 으로 바꾸십시오. 선택적으로 SelfSignedca.crt를 자체 서명된 인증서를 포함하는 파일 이름으로 바꿀 수 있습니다.

    openssl req -new -x509 -days 365 -key SelfSignedCA.key -out SelfSignedCA.crt Enter pass phrase for SelfSignedCA.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []:
자체 서명 인증서를 사용하여 웹 서버의 CSR을 서명하려면
  • 다음 OpenSSL 명령을 사용해 프라이빗 키와 자체 서명 인증서를 통해 CSR을 서명합니다. 다음을 해당 데이터(다를 경우)가 포함된 파일 이름으로 바꿉니다.

    • IIS CertRequest .csr - 웹 서버의 CSR이 들어 있는 파일의 이름입니다.

    • SelfSignedca.crt — 자체 서명된 인증서가 들어 있는 파일 이름

    • SelfSignedCA.key — 개인 키가 들어 있는 파일 이름

    • IISCert.crt – 웹 서버의 서명된 인증서를 포함하는 파일의 이름

    openssl x509 -req -days 365 -in IISCertRequest.csr \ -CA SelfSignedCA.crt \ -CAkey SelfSignedCA.key \ -CAcreateserial \ -out IISCert.crt Signature ok subject=/ST=IIS-HSM/L=IIS-HSM/OU=IIS-HSM/O=IIS-HSM/CN=IIS-HSM/C=IIS-HSM Getting CA Private Key Enter pass phrase for SelfSignedCA.key:

이전 단계를 완료하고 나면 웹 서버에 대한 서명 인증서(IISCert.crt)와 자체 서명 인증서(SelfSignedCA.crt)를 얻게 됩니다. 이러한 파일을 얻었으면 3단계: 웹 서버 구성하기로 이동합니다.