次の方法で共有


HPC Pack 2019 クラスターの証明書を管理する

HPC Pack クラスターには、さまざまな目的で使用される証明書がいくつかあります。 完全な一覧を次に示します。

証書 目的と説明 インストール場所
Microsoft HPC Azure クライアント ヘッド ノードが Azure PaaS プロキシ ノードと通信するために使用されます。 HPC クラスターによって自動生成される自己署名証明書です。 ヘッド ノード:LocalComputer\Personal
Microsoft HPC Azure サービス ヘッド ノードとの通信に Azure PaaS プロキシ ノードによって使用されます。 HPC クラスターによって自動生成される自己署名証明書です。 Azure プロキシ ノード:LocalComputer\Personal
Microsoft HPC Azure Management(1) ヘッド ノードが Azure Management Service と通信し、クラシック モードで Azure リソースを管理するために使用されます。 ヘッド ノード:
LocalComputer\Personal
LocalComputer\Trusted Root CA (自己署名のみ)
Azure Portal:
Subscriptions\Management 証明書
Azure サービス プリンシパル証明書 ヘッド ノードが Azure Resource Manager と通信し、リソース マネージャー モードで Azure リソースを管理するために使用されます。
Microsoft HPC Azure Managementで同じ証明書 使用できます。
ヘッド ノード:
LocalComputer\Personal
Azure サービス プリンシパル の
HPC Pack 通信証明書 Azure PaaS ノードと Azure Batch プールを除くすべてのノードによる通信に使用されます。
自己署名証明書であり、Burst to Azure IaaS VM 機能を使用して Azure IaaS コンピューティング ノードをデプロイする予定の場合は、この証明書を Azure Key Vault にインポート 、Azure IaaS コンピューティング ノードを使用してヘッド ノードと通信できるようにします。
Windows ノード(2)(3):
LocalComputer\Personal
LocalComputer\Trusted Root CA (自己署名のみ)
Linux ノード:
/opt/hpcnodemanager/cert
Service Fabric 証明書 Service Fabric クラスター通信をセキュリティで保護するためにヘッド ノードによって使用されます。
既定では、HPC Pack 通信証明書と同じ証明書が使用されます。
Service Fabric クラスターに証明書を追加できます。
ヘッド ノード:
LocalComputer\Personal
LocalComputer\Trusted Root CA (自己署名のみ)
CurrentUser\Personal**(5)**

(1) 新しい顧客向けに Cloud Services (クラシック) が非推奨になり、2024 年 8 月 31 日にすべての顧客に対して廃止されます。 新しいデプロイでは、新しい Azure Resource Manager ベースのデプロイ モデルである Azure Cloud Services (延長サポート) を使用する必要があります。

(2) ドメインに参加している Windows HPC クライアント コンピューターの場合、次の 2 つの方法で、Local Computer\Trusted Root CA ストアに hpc Pack Communication for Head ノード 証明書をインストールしないことを選択できます。

  • HPC クライアントのインストール中に、[CA と CN の検証をスキップする] を選択します

  • レジストリ キー HKLM\SOFTWARE\Microsoft\HPC の下 DWORD 値 0 の CertificateValidationType という名前のレジストリ値を追加します

(3) ドメインに参加していない HPC クライアント コンピューターの場合は、秘密キーを使用して Local Computer\Personal に証明書 HPC Pack Communication for Head ノード をインストールし、秘密キーなしで CurrentUser\Trusted Root CA を してから、レジストリ キー HKLM\SOFTWARE\Microsoft\HPC の下 に SSLThumbprint という名前のレジストリ値を追加し、証明書の拇印を指定する必要があります。

(4) ヘッド ノードまたは他のノード上の Service Fabric クラスター ポータル (https://<service-fabric-cluster-hostname>:10400) にアクセスする場合は、CurrentUser\Personal の下に秘密キーを使用して証明書をインストールする必要があります。

HPC Pack Node 通信証明書をローテーションする

Microsoft HPC Pack 2016 (以降) では、証明書を使用して HPC ノード間の通信をセキュリティで保護します。 HPC Pack クラスターが破損しないように、証明書の有効期限が切れる前に証明書をローテーションする必要があります。

証明書は、次の要件を満たしている必要があります。

  • キー交換が可能な秘密キーを用意します。
  • キーの使用法には、デジタル署名、キー暗号化、キー契約、証明書署名が含まれます。
  • 拡張キーの使用法には、クライアント認証とサーバー認証が含まれます。
  • 2 つの異なる証明書を使用する場合は、同じサブジェクト名を持つ必要があります。

Service Fabric クラスター セキュリティで保護するために証明書を使用する場合は、次の 追加要件満たす必要があります。

  • 証明書のプロバイダーは、Microsoft Enhanced RSA および AES Cryptographic Providerする必要があります。
  • RSA キーの長さは、2048 ビット 必要があります。

新しい証明書を準備する

新しい証明書を準備するときは、必ず古い証明書と同じサブジェクト名を使用してください。 HPC ノードで次の PowerShell コマンドを実行して、証明書のサブジェクト名を取得します。

$thumbprint = (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\HPC -Name SSLThumbprint).SSLThumbPrint
$subjectName = (Get-Item Cert:\LocalMachine\My\$thumbprint).Subject
$subjectName

自己署名証明書を使用している場合は、オペレーティング システム Windows 10 または Windows Server 2016 を搭載したコンピューターで次の PowerShell コマンドを実行して、上記のすべての要件を満たす新しい証明書を生成します。 新しい証明書の拇印が付いた名前のフォルダーの下に 2 つのファイルが表示されます。秘密キーと秘密キーのない PublicCert.cerPrivateCert.pfx。 正しいサブジェクト名 <>を使用します。

$subjectName = "<subject-name>"
$pfxcert = New-SelfSignedCertificate -Subject $subjectName -KeySpec KeyExchange -KeyLength 2048 -HashAlgorithm SHA256 -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2") -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" -CertStoreLocation Cert:\CurrentUser\My -KeyExportPolicy Exportable -NotAfter (Get-Date).AddYears(10) -NotBefore (Get-Date).AddDays(-1)
$certThumbprint = $pfxcert.Thumbprint
$null = New-Item $env:Temp\$certThumbprint -ItemType Directory
$pfxPassword = Get-Credential -UserName 'Protection password' -Message 'Enter protection password below'
Export-PfxCertificate -Cert Cert:\CurrentUser\My\$certThumbprint -FilePath "$env:Temp\$certThumbprint\PrivateCert.pfx" -Password $pfxPassword.Password
Export-Certificate -Cert Cert:\CurrentUser\My\$certThumbprint -FilePath "$env:Temp\$certThumbprint\PublicCert.cer" -Type CERT -Force
start "$env:Temp\$certThumbprint"

証明機関 (CA) 署名付き証明書または既存の自己署名証明書を使用している場合は、次のコマンドを実行し、KeySpecSubjectKey UsageEnhanced Key UsagePublic Key Length、および Providerの値を確認できます。

CertUtil.exe -p "<password>" -v -dump <path-of-pfxFile>
  • SubjectKey UsageEnhanced Key Usage、または Public Key Length の値が一致しない場合は、証明書を再生成する必要があります。

  • KeySpec の値 ("1 - AT_KEYEXCHANGE" である必要があります) または Provider が一致しない場合は、証明書を再生成する必要はありません。 次のコマンドを実行して、変更された の値を含む証明書をインポートし、certlm.msc 実行して、要件を満たす新しい PFX ファイルに秘密キーを含む証明書をエクスポートします。

CertUtil.exe -f -p "<password>" -csp "Microsoft Enhanced RSA and AES Cryptographic Provider" -importpfx "<path-of-pfxFile>" AT_KEYEXCHANGE

単一ヘッド ノードの証明書をローテーションする

  1. 新しいヘッド ノード証明書が自己署名されている場合は、すべての Windows クラスター ノードがこの新しい自己署名証明書を信頼してからローテーションします。

    • 新しいパブリック証明書 PublicCert.cer ファイルを、新しい名前 HpcHnPublicCert.cerの HPC インストール共有 (\\headnode\REMINST\Certificates) の下にある Certificates フォルダーにコピーします。
    • HPC クラスター マネージャー >Resource Management>ノードを開きます。 すべての Windows コンピューティング ノード、ブローカー ノード、ワークステーション ノードを選択します。 [コマンド実行] を選択します。 正しいヘッド ノードで次のコマンドを実行して、新しいヘッド ノード証明書を信頼させます。
    PowerShell.exe -ExecutionPolicy ByPass -Command "Import-certificate -FilePath \\<headnode>\REMINST\Certificates\HpcHnPublicCert.cer -CertStoreLocation cert:\LocalMachine\Root"
    
  2. PowerShell スクリプト Update-HpcNodeCertificate.ps1 をダウンロードし、次の PowerShell コマンドを実行して、PrivateCert.pfx新しい証明書を適用します。

    .\Update-HpcNodeCertificate.ps1 -PfxFilePath <path-of-PrivateCert.pfx> -Password <password>
    
  3. azure IaaS VM への バースト機能を使用している場合は、HPC クラスター マネージャーで [構成] [Azure デプロイ構成の設定] を選択して、Azure Key Vault 証明書の ページ PrivateCert.pfx に新しい証明書をインポートします。 または、「Azure Portal での Azure Key Vault 証明書の作成」を参照してPrivateCert.pfx を Azure Key Vault に手動でインポートし、Azure デプロイ構成 ウィザードの [Azure Key Vault 証明書] ページで値を指定します。

高可用性ヘッド ノードの証明書をローテーションする

この手順は、Service Fabric クラスターまたは HPC Pack 2019 組み込みの高可用性アーキテクチャに適用されます。

  1. 新しいヘッド ノード証明書が自己署名されている場合は、すべての Windows クラスター ノードがこの新しい自己署名証明書を信頼してからローテーションします。

    • 新しいパブリック証明書 PublicCert.cer ファイルを、新しい名前 HpcHnPublicCert.cerの HPC インストール共有 (\\<InstallShare>\Certificates) の下にある Certificates フォルダーにコピーします。 次の PowerShell コマンドを使用して、HPC インストール共有を取得できます。

      Add-PSSnapin Microsoft.HPC
      Get-HpcClusterRegistry -PropertyName InstallShare
      
    • HPC Cluster ManagerResource Managementノード開き、すべてのヘッド ノードを含むすべての Windows クラスター ノードを選択し、コマンドの実行 選択します。 正しいインストール共有で次のコマンド ラインを実行して、新しいヘッド ノード証明書を信頼させます。

    PowerShell.exe -ExecutionPolicy ByPass -Command "Import-certificate -FilePath \\<InstallShare>\Certificates\HpcHnPublicCert.cer -CertStoreLocation cert:\LocalMachine\Root"
    
  2. すべてのヘッド ノードで、PowerShell スクリプト Update-HpcNodeCertificate.ps1 をダウンロードし、次の PowerShell コマンドを実行して、PrivateCert.pfx新しい証明書をインポートして適用します。

    .\Update-HpcNodeCertificate.ps1 -PfxFilePath <path-of-PrivateCert.pfx> -Password <password>
    
  3. いずれかのヘッド ノードで、次の PowerShell コマンドを実行して、すべてのヘッド ノードに既にインストールされている新しい証明書を適用します。

    Add-PSSnapin Microsoft.HPC
    $thumbprint = (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\HPC -Name SSLThumbprint).SSLThumbPrint
    Set-HpcClusterRegistry -PropertyName SSLThumbprint -PropertyValue $thumbprint
    
  4. Burst to Azure IaaS VM 機能を使用している場合は、HPC クラスター マネージャーで [構成] [Azure Deployment Configuration の設定] を選択し、Azure Key Vault 証明書ページで PrivateCert.pfx 新しい証明書をインポートします。 または、「Azure Portal で Azure Key Vault 証明書を作成する 」を参照して、PrivateCert.pfx を Azure Key Vault に手動でインポートし、Azure デプロイ 構成の設定ウィザードの [Azure Key Vault 証明書] ページで値を指定

  5. [Service Fabric クラスターのみ]Service Fabric クラスターをセキュリティで保護するために同じ証明書を使用している場合は、Service Fabric クラスター構成のアップグレードが必要かどうかを確認します。 任意のヘッド ノードで、次の PowerShell コマンドを実行して、Service Fabric クラスターの現在のセキュリティ構成を確認します。

    Connect-ServiceFabricCluster
    Get-ServiceFabricClusterConfiguration | Out-File d:\sfclusterconfig.json
    

    セキュリティ構成が以下の場合、新しい証明書が同じ発行者によって発行される場合、Service Fabric クラスター構成のアップグレードは必要ありません。

        "Security": {
          "CertificateInformation": {
            "ClusterCertificateCommonNames": {
              "CommonNames": [
                {
                  "CertificateCommonName": "[CertificateCommonName]",
                  "CertificateIssuerThumbprint": "[IssuerThumbprint]"
                }
              ],
              "X509StoreName": "My"
            },
            "ServerCertificateCommonNames": {
              "CommonNames": [
                {
                  "CertificateCommonName": "[CertificateCommonName]",
                  "CertificateIssuerThumbprint": "[IssuerThumbprint]"
                }
              ],
              "X509StoreName": "My"
            }
          },
          "ClusterCredentialType": "X509",
          "ServerCredentialType": "X509"
        },
    

    セキュリティ構成が以下の場合は、Service Fabric クラスター構成をアップグレードする必要があります。

        "Security": {
          "CertificateInformation": {
            "ClusterCertificate": {
              "Thumbprint": "[Thumbprint]",
              "X509StoreName": "My"
            },
            "ServerCertificate": {
              "Thumbprint": "[Thumbprint]",
              "X509StoreName": "My"
            }
          },
          "ClusterCredentialType": "X509",
          "ServerCredentialType": "X509"
        },
    

Service Fabric クラスターの証明書ロールオーバーの詳細については、「Service Fabric クラスターの証明書構成 のアップグレード」および「スタンドアロン Service Fabric クラスターをセキュリティで保護する」を参照してください。

Service Fabric クラスターの証明書構成をアップグレードする

  1. 次のようにファイル sfclusterconfig.json を変更します。

    • ClusterCertificateServerCertificate の下の Thumbprint の値を置き換えます
    • SecurityCertificateInformation の下にある場合は、名前 $id を持つプロパティを削除します
    • clusterConfigurationVersion を 1.0.0 から 1.0.1 に変更するなど、より高いバージョンに変更する
  2. 次の PowerShell コマンドを実行して、Service Fabric クラスター構成のアップグレードを開始します。

    Connect-ServiceFabricCluster
    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath d:\sfclusterconfig.json
    
  3. アップグレードの状態を照会するには、次のコマンドを使用します。

Get-ServiceFabricClusterConfigurationUpgradeStatus

Service Fabric HA を使用してクラスターで既に期限切れの証明書をローテーションする

  1. Service Fabric クラスターの復旧
  • Azure Service Fabric スタンドアロン クラスター の期限切れの証明書のトラブルシューティング 、Service Fabric クラスターの証明書を更新する方法に関する詳細なオンライン ドキュメントに従います。
  1. HPC Pack クラスターを復旧する
  • 2.1 すべてのヘッド ノードで、次の PowerShell コマンドを実行します。
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\HPC" -Name SSLThumbprint -Value <NewThumbrpint>
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\HPC" -Name SSLThumbprint -Value <NewThumbrpint>
  • 2.2 1 つのヘッド ノードで PowerShell スクリプト Set-HpcReliableProperty.ps1 を実行します (任意のヘッド ノードを指定できます)。
Set-HpcReliableProperty.ps1 -PropertyName SSLThumbprint -PropertyValue <NewThumbrpint>

ブローカー、コンピューティング、およびワークステーション ノードで証明書をローテーションする

  1. たとえば、PrivateCert.pfxなどの新しい CN 証明書を、HPC インストール共有の下の Certificates フォルダーにコピーします。たとえば、\\headnode\REMINST\Certificatesで、新しい名前 HpcCnCommunication.pfx

  2. PowerShell スクリプト Update-HpcNodeCertificate.ps1 をダウンロードし、HPC インストール共有 (\\ヘッドノード\REMINST) に配置します。 HPC クラスター マネージャー 開き、[リソース管理]>[ノード]を選択します。 すべての Windows コンピューティング ノード、ブローカー ノード、ワークステーション ノードを選択します。 ヘッド ノードが含まれていないことを確認します。 コマンドを実行] を選択し、ヘッド ノードとパスワードの正しい値を指定して次のコマンドを実行します。

    PowerShell.exe -ExecutionPolicy ByPass -Command "\\<headnode>\REMINST\Update-HpcNodeCertificate.ps1 -PfxFilePath \\<headnode>\REMINST\Certificates\HpcCnCommunication.pfx -Password <password> -RunAsScheduledTask"
    
  3. Linux コンピューティング ノードがある場合は、ヘッド ノードで HPC クラスター マネージャーを開きます。 リソース管理>ノードを選択します。 すべての Linux ノードを選択します。 [コマンド実行] を選択し、次のコマンドを順番に実行します。

    まず、すべての Linux ノードに一時ディレクトリを作成します。

    mkdir /tmp/hpcreminst
    

    次に、すべての Linux ノードに HPC インストール共有をマウントします。 ヘッド ノード、ドメイン名、およびドメイン ユーザー資格情報の正しい値を入力します。

    mount -t cifs //headnode/REMINST /tmp/hpcreminst -o vers=2.1, domain=<domainname>,username=<username>,password='<userpassword>',dir_mode=0755,file_mode=0755
    

    3 つ目は、すべての Linux ノードで証明書をローテーションするようにジョブをスケジュールします。 ヘッド ノードと証明書保護パスワードの正しい値を入力します。

    cd /tmp/hpcreminst; echo "python /opt/hpcnodemanager/setup.py -certfile:/tmp/hpcreminst/Certificates/HpcCnCommunication.pfx -certpassword:<password>" | at now + 1 minute
    
  4. 必要に応じて、新しいベア メタル マシンをデプロイする場合は、HPC クラスター マネージャーを開き、展開 To Do リストに移動します。 展開 用の証明書をインポートを選択して、HpcCnCommunication.pfx名前の新しい CN 証明書を \\headnode\REMINST\Certificatesからインポートします。

次の手順

HPC Pack 2019の詳細については、以下のチュートリアルを参照してください。