인증서 관리자로 인증서 마이그레이션

이 페이지에서는 하나 이상의 인증서를 인증서 관리자로 마이그레이션하는 단계를 설명합니다. 다음 시나리오를 다룹니다.

  • 서드 파티 인증서를 인증서 관리자로 마이그레이션합니다.
  • Cloud Load Balancing 인증서를 인증서 관리자로 마이그레이션합니다. Cloud Load Balancing 인증서에 대한 자세한 내용은 Cloud Load Balancing 문서의 SSL 인증서 개요를 참조하세요.

두 시나리오 모두 구성 중에 오류가 발생하지 않는 한 다운타임이 발생하지 않습니다.

이 페이지에 언급된 인증서 관리자 항목에 대한 자세한 내용은 인증서 관리자의 작동 방식을 참조하세요.

서드 파티 인증서를 인증서 관리자로 마이그레이션

이 섹션에서는 서드 파티 서비스에서 제공하는 인증서 하나 이상을 인증서 관리자로 마이그레이션하는 방법을 설명합니다.

시작하기 전에 지원되는 부하 분산기를 선택하고 설정해야 합니다. 인증서 관리자를 사용하면 다음 부하 분산기 리소스에서 사용할 전송 계층 보안(TLS) 인증서를 획득하고 관리할 수 있습니다.

  • 애플리케이션 부하 분산기에서 사용하는 대상 HTTPS 프록시는 다음과 같습니다.

    • 전역 외부 애플리케이션 부하 분산기
    • 기본 애플리케이션 부하 분산기
    • 리전 외부 애플리케이션 부하 분산기
    • 리전 내부 애플리케이션 부하 분산기
    • 리전 간 내부 애플리케이션 부하 분산기
  • 프록시 네트워크 부하 분산기에서 사용하는 대상 SSL 프록시는 다음가 같습니다.

    • 전역 외부 프록시 네트워크 부하 분산기
    • 기본 프록시 네트워크 부하 분산기

마이그레이션하려는 인증서마다 다음 단계를 완료합니다.

  1. DNS 승인을 사용하여 Google 관리형 인증서 배포(튜토리얼)의 설명에 따라 DNS 승인을 사용하여 대상 인증서를 배포합니다(삭제 단계는 포함하지 않음). 부하 분산기로 마이그레이션하는 모든 인증서에 단일 인증서 맵을 사용합니다.

  2. 이전 단계에서 배포한 각 인증서에 대해 다음 명령어를 사용하여 부하 분산기의 IP 주소에 있는 인증서를 사용하는 각 도메인에 대한 연결을 테스트합니다.

    openssl s_client -showcerts -servername DOMAIN_NAME -connect IP_ADDRESS:443
    

    다음을 바꿉니다.

    • DOMAIN_NAME: 대상 도메인 이름
    • IP_ADDRESS: 부하 분산기의 IP 주소

    연결 테스트에 대한 자세한 내용은 OpenSSL을 사용한 테스트를 참조하세요.

  3. 부하 분산기의 IP 주소를 가리키도록 DNS A 및 AAAA 레코드 업데이트의 단계를 완료하여 서드 파티 서비스에서 Cloud Load Balancing으로 트래픽을 전환합니다.

Cloud Load Balancing 인증서를 인증서 관리자로 마이그레이션

이 섹션에서는 하나 이상의 Cloud Load Balancing 인증서를 인증서 관리자로 마이그레이션하는 방법을 설명합니다.

마이그레이션할 인증서 식별

마이그레이션하려는 인증서를 식별하려면 다음 단계를 완료하세요.

  1. 대상 부하 분산기에서 대상 프록시의 이름을 확인합니다.

  2. 다음 명령어를 사용하여 연결된 인증서를 포함하여 대상 프록시에 대한 정보를 가져와 마이그레이션할 인증서를 식별합니다.

    gcloud compute target-https-proxies describe TARGET_PROXY_NAME
    

    TARGET_PROXY_NAME을 대상 프록시의 이름으로 바꿉니다.

    출력은 다음과 비슷합니다.

    creationTimestamp: '2021-10-06T04:05:07.520-07:00'
    fingerprint: c9Txdx6AfcM=
    id: '365692570234384780'
    kind: compute#targetHttpsProxy
    name: my-proxy
    selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/targetHttpsProxies/my-proxy
    sslCertificates:
    - https://www.googleapis.com/compute/v1/projects/my-project/global/sslCertificates/my-first-certificate
    - https://www.googleapis.com/compute/v1/projects/my-project/global/sslCertificates/my-second-certificate
    urlMap: https://www.googleapis.com/compute/v1/projects/my-project/global/urlMaps/my-map
    

    자세한 내용은 대상 프록시 정보 가져오기를 참조하세요.

인증서 관리자에서 인증서 만들기

다음과 같이 인증서 관리자에서 선택한 인증서를 만듭니다.

다음 단계로 진행하기 전에 인증서가 활성 상태인지 확인에 설명된 대로 각 인증서의 상태가 ACTIVE로 변경될 때까지 기다립니다. 각 인증서가 발급되고 상태가 ACTIVE로 변경되는 데 몇 시간이 걸릴 수 있습니다.

인증서 맵 만들기

전역 외부 애플리케이션 부하 분산기 또는 기본 애플리케이션 부하 분산기에 인증서를 배포하려면 인증서 맵 만들기의 단계를 완료하여 인증서 맵을 만듭니다.

리전 외부 애플리케이션 부하 분산기 또는 리전 내부 애플리케이션 부하 분산기에 인증서를 배포하는 데 인증서 맵은 필요하지 않습니다.

인증서 맵 항목 만들기

전역 외부 애플리케이션 부하 분산기 또는 기본 애플리케이션 부하 분산기에 인증서를 배포하려면 인증서 맵 항목을 만듭니다. 리전 외부 애플리케이션 부하 분산기 또는 리전 내부 애플리케이션 부하 분산기에 인증서를 배포하는 데 인증서 맵 항목은 필요하지 않습니다.

마이그레이션하려는 각 인증서에 대해 다음과 같이 해당 인증서를 참조하는 인증서 맵 항목을 만듭니다.

  1. 다음 명령어를 사용하여 인증서의 세부정보를 가져옵니다.

    gcloud compute ssl-certificates --project=my-project describe CERTIFICATE_NAME
    

    CERTIFICATE_NAME을 대상 인증서의 이름으로 바꿉니다.

    출력은 다음과 비슷합니다.

       -----BEGIN CERTIFICATE-----
       MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBX
       MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UE
       CxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYx
       OTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoT
       GUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIx
       MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63
       ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwS
       iV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351k
       KSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZ
       DrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zk
       j5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5
       cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esW
       CruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499
       iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35Ei
       Eua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbap
       sZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b
       9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAP
       BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAf
       BgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIw
       JQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUH
       MAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6Al
       oCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAy
       MAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIF
       AwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9
       NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9
       WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw
       9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy
       +qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvi
       d0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=
       -----END CERTIFICATE-----
       creationTimestamp: '2021-05-06T04:39:21.736-07:00'
       expireTime: '2022-06-07T01:10:34.000-07:00'
       id: '6422259403966690822'
       kind: compute#sslCertificate
       managed:
          domainStatus:
          a.my-domain1.example.com: ACTIVE
          b.my-domain2.example.com: ACTIVE
          domains:
          - a.my-domain1.example.com
          - b.my-domain2.example.com
          status: ACTIVE
       name: my-certificate
       selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/sslCertificates/my-certificate
       subjectAlternativeNames:
       - a. my-domain1.example.com
       - b. my-domain2.example.com
       type: MANAGED
    
  2. subjectAlternativeNames 필드에 나열된 각 도메인에 대해 인증서 맵 항목 만들기의 단계를 완료하여 해당 도메인을 포함하는 인증서 맵 항목을 만듭니다. 단일 도메인에 두 개 이상의 인증서가 적용되는 경우 하나의 인증서 맵 항목만 만들고 해당 도메인을 포함하는 유효한 인증서를 사용하면 됩니다.

  3. 선택사항: 기본 인증서 맵 항목 만들기에 설명된 대로 원래 프록시에 연결된 인증서 목록의 첫 번째 인증서에 해당하는 인증서를 참조하는 기본 인증서 맵 항목을 만듭니다.

  4. 다음 명령어를 사용하여 만든 각 인증서 맵 항목이 활성 상태인지 확인합니다.

    gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \
       --map="CERTIFICATE_MAP_NAME"
    

    다음을 바꿉니다.

    • CERTIFICATE_MAP_ENTRY_NAME: 대상 인증서 맵 항목 이름
    • CERTIFICATE_MAP_NAME: 이 인증서 맵 항목이 연결된 인증서 맵의 이름

    출력은 다음과 비슷합니다.

       createTime: '2021-09-06T10:01:56.229472109Z'
       name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/my-map-entry
       state: ACTIVE
       updateTime: '2021-09-06T10:01:58.277031787Z'
    

선택사항: 새 부하 분산기에서 구성 테스트

다운타임을 최소화하려면 프로덕션 트래픽을 제공하지 않는 새 부하 분산기에서 새로 구성된 인증서 맵을 테스트하는 것이 좋습니다. 이렇게 하면 프로덕션 환경에서 마이그레이션을 진행하기 전에 오류를 감지하고 해결할 수 있습니다.

다음과 같이 구성을 테스트합니다.

  1. 외부 애플리케이션 부하 분산기 설정에 설명된 대로 새 대상 프록시를 사용하여 새 부하 분산기를 만듭니다.

  2. 외부 애플리케이션 부하 분산기를 사용하는 경우 대상 프록시에 인증서 맵 연결에 설명된 대로 테스트할 인증서 맵을 새 부하 분산기의 대상 프록시에 연결합니다.

    리전 외부 애플리케이션 부하 분산기 또는 리전 내부 애플리케이션 부하 분산기를 사용하는 경우 리전 자체 관리형 인증서 배포에 설명된 대로 인증서를 대상 프록시에 연결합니다.

  3. 마이그레이션에 포함된 각 대상 도메인에 대해 다음 명령어를 사용하여 새 부하 분산기의 IP 주소에서 도메인에 대한 연결을 테스트합니다.

    openssl s_client -showcerts -servername DOMAIN_NAME -connect IP_ADDRESS:443
    

    다음을 바꿉니다.

    • DOMAIN_NAME: 대상 도메인 이름
    • IP_ADDRESS: 새 부하 분산기의 IP 주소

    연결 테스트에 대한 자세한 내용은 OpenSSL을 사용한 테스트를 참조하세요.

테스트 환경 삭제

다음과 같이 이전 단계에서 만든 테스트 환경을 삭제합니다.

  1. 인증서 맵을 프록시에서 분리합니다.

    gcloud compute target-https-proxies update PROXY_NAME \
       --clear-certificate-map
    

    PROXY_NAME을 대상 프록시의 이름으로 바꿉니다.

  2. 부하 분산기 삭제에 설명된 대로 테스트 부하 분산기를 삭제합니다.

이전 단계에서 만든 인증서, 인증서 맵 또는 인증서 맵 항목은 삭제하지 마세요.

대상 부하 분산기에 새 인증서 맵 적용

새 인증서 구성을 테스트하고 유효한지 확인한 후 다음과 같이 대상 부하 분산기에 새 인증서 맵을 적용합니다.

  1. 외부 애플리케이션 부하 분산기를 사용하는 경우 대상 프록시에 인증서 맵 연결에 설명된 대로 새 인증서 맵을 적절한 대상 프록시에 연결합니다.

    리전 외부 애플리케이션 부하 분산기 또는 리전 내부 애플리케이션 부하 분산기를 사용하는 경우 리전 자체 관리형 인증서 배포에 설명된 대로 인증서를 대상 프록시에 연결합니다.

  2. 구성 변경사항이 적용되고 부하 분산기에서 새 인증서를 제공하기 시작할 때까지 기다립니다. 이 작업은 일반적으로 몇 분 정도 걸리지만 최대 30분 정도 걸릴 수 있습니다.

  3. 트래픽에 문제가 있는 경우 프록시에서 인증서 맵 분리의 단계를 완료하여 대상 프록시에서 새 인증서 맵을 분리합니다. 이렇게 하면 부하 분산기가 원래 구성으로 되돌아갑니다. 그렇지 않으면 이제 새 구성이 완료됩니다.

    리전 외부 애플리케이션 부하 분산기 또는 리전 내부 애플리케이션 부하 분산기를 사용하는 경우 이전에 연결된 기본 인증서를 연결하여 변경사항을 되돌립니다.

다음 단계