Azure Stack Hub에 대한 인증서 서명 요청 생성

Azure Stack Hub 준비 검사 도구를 사용하여 Azure Stack Hub 배포 또는 기존 배포에 대한 인증서 갱신에 적합한 CSR(인증서 서명 요청)을 만듭니다. 인증서를 배포하기 전에 테스트하기에 충분한 리드 타임으로 인증서를 요청, 생성 및 유효성 검사하는 것이 중요합니다.

이 도구는 이 문서의 맨 위에 있는 CSR 인증서 선택 시나리오 선택기를 기반으로 다음 인증서를 요청하는 데 사용됩니다.

  • 새 배포에 대한 표준 인증서: 이 문서의 맨 위에 있는 CSR 인증서 선택 시나리오 선택기를 사용하여 새 배포를 선택합니다.
  • 기존 배포에 대한 인증서 갱신: 이 문서의 맨 위에 있는 CSR 인증서 선택 시나리오 선택기를 사용하여 갱신을 선택합니다.
  • PaaS(Platform-as-a-Service) 인증서: 필요에 따라 표준 인증서와 갱신 인증서를 모두 사용하여 생성할 수 있습니다. 자세한 내용은 Azure Stack Hub PKI(공개 키 인프라) 인증서 요구 사항 - 선택적 PaaS 인증서를 참조하세요 .

사전 요구 사항

Azure Stack Hub 배포를 위한 PKI 인증서에 대한 CSR을 생성하기 전에 시스템은 다음 필수 조건을 충족해야 합니다.

  • Windows 10 이상 또는 Windows Server 2016 이상이 있는 컴퓨터에 있어야 합니다.
  • 다음 cmdlet을 사용하여 PowerShell 프롬프트(5.1 이상)에서 Azure Stack Hub 준비 검사기 도구를 설치합니다.
         Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
    
  • 인증서에는 다음 특성이 필요합니다.
    • 지역 이름
    • 외부 FQDN(정규화된 도메인 이름)
    • 제목

새 배포 인증서에 대한 CSR 생성

참고

인증서 서명 요청을 생성하려면 권한 상승이 필요합니다. 권한 상승이 불가능한 제한된 환경에서는 이 도구를 사용하여 Azure Stack Hub 외부 인증서에 필요한 모든 정보를 포함하는 명확한 텍스트 템플릿 파일을 생성할 수 있습니다. 그런 다음, 관리자 권한 세션에서 이러한 템플릿 파일을 사용하여 퍼블릭/프라이빗 키 쌍 생성을 완료해야 합니다. 자세한 내용은 다음을 참조하세요.

새 Azure Stack Hub PKI 인증서에 대한 CSR을 준비하려면 다음 단계를 완료합니다.

  1. 준비 검사 도구를 설치한 컴퓨터에서 PowerShell 세션을 엽니다.

  2. 다음 변수를 선언합니다.

    참고

    <regionName>.<externalFQDN> 는 Azure Stack Hub의 모든 외부 DNS 이름이 만들어지는 기초를 형성합니다. 다음 예제에서 포털은 입니다 portal.east.azurestack.contoso.com.

    $outputDirectory = "$ENV:USERPROFILE\Documents\AzureStackCSR" # An existing output directory
    $IdentitySystem = "AAD"                     # Use "AAD" for Azure Active Director, "ADFS" for Active Directory Federation Services
    $regionName = 'east'                        # The region name for your Azure Stack Hub deployment
    $externalFQDN = 'azurestack.contoso.com'    # The external FQDN for your Azure Stack Hub deployment
    

이제 동일한 PowerShell 세션을 사용하여 CSR을 생성합니다. 지침은 아래에서 선택한 제목 형식에 따라 다릅니다.

참고

Azure Stack Hub 서비스의 첫 번째 DNS 이름은 인증서 요청에서 CN 필드로 구성됩니다.

  1. 제목을 선언합니다. 예를 들면 다음과 같습니다.

    $subject = "C=US,ST=Washington,L=Redmond,O=Microsoft,OU=Azure Stack Hub"
    
  1. 다음 중 하나를 완료하여 CSR을 생성합니다.

    • 프로덕션 배포 환경의 경우 첫 번째 스크립트는 배포 인증서에 대한 CSR을 생성합니다.

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem
      
    • 두 번째 스크립트는 원하는 경우 를 사용하고 -IncludeContainerRegistry 배포 인증서에 대한 CSR과 동시에 Azure Container Registry 대한 CSR을 생성합니다.

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -IncludeContainerRegistry
      
    • 세 번째 스크립트는 설치한 선택적 PaaS 서비스에 대한 CSR을 생성합니다.

      # App Services
      New-AzsHubAppServicesCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory
      
      # DBAdapter (SQL/MySQL)
      New-AzsHubDbAdapterCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory
      
      # EventHubs
      New-AzsHubEventHubsCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory
      
      # Azure Container Registry
      New-AzsHubAzureContainerRegistryCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory 
      
    • 낮은 권한 환경의 경우 필요한 특성이 선언된 명확한 텍스트 인증서 템플릿 파일을 생성하려면 매개 변수를 -LowPrivilege 추가합니다.

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -LowPrivilege
      
    • 개발 및 테스트 환경의 경우 다중 주체 대체 이름을 사용하여 단일 CSR을 생성하려면 매개 변수 및 값을 추가 -RequestType SingleCSR 합니다.

      중요

      프로덕션 환경에는 이 방법을 사용하지 않는 것이 좋습니다.

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -RequestType SingleCSR -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem
      

최종 단계를 완료합니다.

  1. 출력을 검토합니다.

    Starting Certificate Request Process for Deployment
    CSR generating for following SAN(s): *.adminhosting.east.azurestack.contoso.com,*.adminvault.east.azurestack.contoso.com,*.blob.east.azurestack.contoso.com,*.hosting.east.azurestack.contoso.com,*.queue.east.azurestack.contoso.com,*.table.east.azurestack.contoso.com,*.vault.east.azurestack.contoso.com,adminmanagement.east.azurestack.contoso.com,adminportal.east.azurestack.contoso.com,management.east.azurestack.contoso.com,portal.east.azurestack.contoso.com
    Present this CSR to your Certificate Authority for Certificate Generation:  C:\Users\username\Documents\AzureStackCSR\Deployment_east_azurestack_contoso_com_SingleCSR_CertRequest_20200710165538.req
    Certreq.exe output: CertReq: Request Created
    
  2. 매개 변수를 -LowPrivilege 사용한 경우 하위 디렉터리에 .inf 파일이 생성되었습니다 C:\Users\username\Documents\AzureStackCSR . 예:

    C:\Users\username\Documents\AzureStackCSR\Deployment_east_azurestack_contoso_com_SingleCSR_CertRequest_20200710165538_ClearTextTemplate.inf

    권한 상승이 허용되는 시스템에 파일을 복사한 다음, 구문을 certreq -new <example.inf> <example.req>사용하여 각 요청에 certreq 서명합니다. 그런 다음, 관리자 권한 시스템에서 생성된 프라이빗 키와 CA에서 서명한 새 인증서를 일치해야 하므로 해당 관리자 권한 시스템의 나머지 프로세스를 완료합니다.

  • 시스템의 지역 및 외부 도메인 이름(FQDN)은 준비 검사기에서 기존 인증서에서 특성을 추출하기 위한 엔드포인트를 결정하는 데 사용됩니다. 다음 중 하나가 시나리오에 적용되는 경우 이 문서의 맨 위에 있는 CSR 인증서 선택 시나리오 선택기를 사용하고 대신 이 문서의 새 배포 버전을 선택해야 합니다.
    • 주체, 키 길이 및 서명 알고리즘과 같은 엔드포인트에서 인증서의 특성을 변경하려고 합니다.
    • 일반 이름 특성만 포함하는 인증서 주체를 사용하려고 합니다.
  • 시작하기 전에 Azure Stack Hub 시스템에 대한 HTTPS 연결이 있는지 확인합니다.

갱신 인증서에 대한 CSR 생성

이 섹션에서는 기존 Azure Stack Hub PKI 인증서 갱신을 위한 CSR 준비에 대해 설명합니다.

CSR 생성

  1. 준비 검사 도구를 설치한 컴퓨터에서 PowerShell 세션을 엽니다.

  2. 다음 변수를 선언합니다.

    참고

    준비 검사기는 앞에 추가된 문자열을 사용하여 stampEndpoint 기존 인증서를 찾습니다. 예를 들어 는 portal.east.azurestack.contoso.com 배포 인증서, sso.appservices.east.azurestack.contoso.com 앱 서비스 인증서 등에 사용됩니다.

    $regionName = 'east'                                            # The region name for your Azure Stack Hub deployment
    $externalFQDN = 'azurestack.contoso.com'                        # The external FQDN for your Azure Stack Hub deployment    
    $stampEndpoint = "$regionName.$externalFQDN"
    $outputDirectory = "$ENV:USERPROFILE\Documents\AzureStackCSR"   # Declare the path to an existing output directory
    
  3. 다음 중 하나 이상을 완료하여 CSR을 생성합니다.

    • 프로덕션 환경의 경우 첫 번째 스크립트는 배포 인증서에 대한 CSR을 생성합니다.

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
    • 두 번째 스크립트는 원하는 경우 를 사용하고 -IncludeContainerRegistry 배포 인증서에 대한 CSR과 동시에 Azure Container Registry 대한 CSR을 생성합니다.

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -IncludeContainerRegistry
      
    • 세 번째 스크립트는 설치한 선택적 PaaS 서비스에 대한 CSR을 생성합니다.

      # App Services
      New-AzsHubAppServicesCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
      # DBAdapter
      New-AzsHubDBAdapterCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
      # EventHubs
      New-AzsHubEventHubsCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
      # Azure Container Registry
      New-AzsHubAzureContainerRegistryCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory 
      
    • 개발 및 테스트 환경의 경우 다중 주체 대체 이름을 사용하여 단일 CSR을 생성하려면 매개 변수 및 값을 추가 -RequestType SingleCSR 합니다.

      중요

      프로덕션 환경에는 이 방법을 사용하지 않는 것이 좋습니다.

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -RequestType SingleCSR
      
  4. 출력을 검토합니다.

    Querying StampEndpoint portal.east.azurestack.contoso.com for existing certificate
    Starting Certificate Request Process for Deployment
    CSR generating for following SAN(s): *.adminhosting.east.azurestack.contoso.com,*.adminvault.east.azurestack.contoso.com,*.blob.east.azurestack.contoso.com,*.hosting.east.azurestack.contoso.com,*.queue.east.azurestack.contoso.com,*.table.east.azurestack.contoso.com,*.vault.east.azurestack.contoso.com,adminmanagement.east.azurestack.contoso.com,adminportal.east.azurestack.contoso.com,management.east.azurestack.contoso.com,portal.east.azurestack.contoso.com
    Present this CSR to your certificate authority for certificate generation: C:\Users\username\Documents\AzureStackCSR\Deployment_east_azurestack_contoso_com_SingleCSR_CertRequest_20200710122723.req
    Certreq.exe output: CertReq: Request Created
    

준비가 되면 생성된 .req 파일을 CA(내부 또는 공용)에 제출합니다. 변수로 $outputDirectory 지정된 디렉터리에는 CA에 제출해야 하는 CSR이 포함됩니다. 또한 디렉터리에는 참조를 위해 인증서 요청 생성 중에 사용할 .inf 파일이 포함된 자식 디렉터리가 포함됩니다. CA가 Azure Stack Hub PKI 요구 사항을 충족하는 생성된 요청을 사용하여 인증서를 생성해야 합니다.

다음 단계

인증 기관에서 인증서를 다시 받으면 동일한 시스템에서 Azure Stack Hub PKI 인증서 준비 의 단계를 수행합니다.