Azure Stack Hub への証明書署名要求を生成する

Azure Stack Hub の Readiness Checker ツールを使用して、Azure Stack Hub のデプロイに適した、または既存のデプロイの証明書更新のために、証明書署名要求 (CSR) を作成できます。 証明書をデプロイするには、事前に十分なリード タイムをとって、証明書の要求、生成、および検証を行ってテストしておくことが重要です。

このツールは、この記事の上部にある [CSR 証明書シナリオの選択] セレクターに基づいて、次の証明書を要求するために使用されます。

  • 新しいデプロイ用の標準証明書: この記事の上部にある [CSR 証明書シナリオの選択] セレクターを使用して、[新しいデプロイ] を選択します。
  • 既存のデプロイ用の更新証明書: この記事の上部にある [CSR 証明書シナリオの選択] セレクターを使用して、[更新] を選択します。
  • サービスとしてのプラットフォーム (PaaS) 証明書: 必要に応じて、標準証明書と更新証明書の両方で生成できます。 詳細については、「Azure Stack Hub 公開キー基盤 (PKI) 証明書の要件 - 省略可能な PaaS 証明書」をご覧ください。

前提条件

Azure Stack Hub デプロイのための PKI 証明書に対する CSR を生成するには、システムが次の前提条件を満たしている必要があります。

  • Windows 10 以降、または Windows Server 2016 以降のマシン上にある必要があります。
  • 次のコマンドレットを使用して、PowerShell プロンプト (5.1 以降) から Azure Stack Hub Readiness Checker ツールをインストールします。
         Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
    
  • 証明書の次の属性が必要です。
    • リージョン名
    • 外部完全修飾ドメイン名 (FQDN)
    • サブジェクト

新しいデプロイの証明書の CSR を生成する

注意

証明書署名要求を生成するには、特権の昇格が必要です。 特権の昇格が不可能な制限された環境では、このツールを使用して、Azure Stack Hub 外部証明書に必要なすべての情報を含むクリア テキスト テンプレート ファイルを生成できます。 次に、これらのテンプレート ファイルは、公開/秘密キーのペアの生成を完了するために、昇格されたセッションで使用する必要があります。 詳細については、以下を参照してください。

新しい Azure Stack Hub PKI 証明書の CSP を準備するには、次の手順を実行します。

  1. Readiness Checker ツールをインストールしたマシンで 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
      
    • 2 番目のスクリプトは、必要に応じて を使用-IncludeContainerRegistryし、展開証明書の CSR と同時にAzure Container Registryの CSR を生成します。

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -IncludeContainerRegistry
      
    • 3 番目のスクリプトでは、インストールした任意の 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
      
    • 開発およびテストの環境の場合、複数のサブジェクト別名を使用して 1 つの 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 パラメーターが使用された場合は、C:\Users\username\Documents\AzureStackCSR サブディレクトリに .inf ファイルが生成されています。 次に例を示します。

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

    特権の昇格が許可されているシステムにこのファイルをコピーしてから、次の構文を使用して各要求に certreq で署名しますcertreq -new <example.inf> <example.req>。 次に、その昇格されたシステム上で残りのプロセスを完了します。これは、CA によって署名された新しい証明書を、昇格されたシステム上で生成される秘密キーと照合する必要があるためです。

  • システムのリージョンと外部ドメイン名 (FQDN) が Readiness Checker ーによって使用され、既存の証明書から属性を抽出するためのエンドポイントが決まります。 シナリオに次のいずれかが当てはまる場合は、この記事の上部にある [CSR 証明書シナリオの選択] セレクターを使用し、代わりにこの記事の新しいデプロイ バージョンを選択する必要があります。
    • サブジェクト、キーの長さ、署名アルゴリズムなど、証明書の属性をエンドポイントで変更したい場合。
    • 共通名属性のみを含む証明書のサブジェクトを使用したい場合。
  • 開始する前に、Azure Stack Hub システムの HTTPS 接続があることを確認します。

更新証明書の CSR を生成する

このセクションでは、既存の Azure Stack Hub PKI 証明書を更新するための CSR の準備について説明します。

CSR の生成

  1. Readiness Checker ツールをインストールしたマシンで PowerShell セッションを開きます。

  2. 次の変数を宣言します。

    注意

    Readiness Checker では、既存の証明書を検索するために、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. 次の 1 つ以上を実行して CSR を生成します。

    • 運用環境の場合、最初のスクリプトではデプロイ証明書の CSR が生成されます。

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
    • 2 番目のスクリプトは、必要に応じて を使用-IncludeContainerRegistryし、展開証明書の CSR と同時にAzure Container Registryの CSR を生成します。

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -IncludeContainerRegistry
      
    • 3 番目のスクリプトでは、インストールした任意の 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 
      
    • 開発およびテストの環境の場合、複数のサブジェクト別名を使用して 1 つの 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 証明書の準備に関するページに記載されている手順を同じシステム上で実行してください。