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 プールを除くすべてのノードによる通信に使用されます。 自己署名証明書であり、 |
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 つの方法で、
HPC クライアントのインストール中に、[CA と CN の検証をスキップする] を選択します
レジストリ キー HKLM\SOFTWARE\Microsoft\HPC の下 DWORD 値 0 の CertificateValidationType という名前のレジストリ値を追加します
(3) ドメインに参加していない HPC クライアント コンピューターの場合は、秘密キーを使用して
(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) 署名付き証明書または既存の自己署名証明書を使用している場合は、次のコマンドを実行し、KeySpec
、Subject
、Key Usage
、Enhanced Key Usage
、Public Key Length
、および Provider
の値を確認できます。
CertUtil.exe -p "<password>" -v -dump <path-of-pfxFile>
Subject
、Key Usage
、Enhanced 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
単一ヘッド ノードの証明書をローテーションする
新しいヘッド ノード証明書が自己署名されている場合は、すべての 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"
PowerShell スクリプト
Update-HpcNodeCertificate.ps1 をダウンロードし、次の PowerShell コマンドを実行して、PrivateCert.pfx新しい証明書を適用します。 .\Update-HpcNodeCertificate.ps1 -PfxFilePath <path-of-PrivateCert.pfx> -Password <password>
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 組み込みの高可用性アーキテクチャに適用されます。
新しいヘッド ノード証明書が自己署名されている場合は、すべての Windows クラスター ノードがこの新しい自己署名証明書を信頼してからローテーションします。
新しいパブリック証明書 PublicCert.cer ファイルを、新しい名前 HpcHnPublicCert.cerの HPC インストール共有 (\\<InstallShare>\Certificates) の下にある Certificates フォルダーにコピーします。 次の PowerShell コマンドを使用して、HPC インストール共有を取得できます。
Add-PSSnapin Microsoft.HPC Get-HpcClusterRegistry -PropertyName InstallShare
HPC Cluster Manager
Resource Management ノード 開き、すべてのヘッド ノードを含むすべての Windows クラスター ノードを選択し、コマンドの実行選択します。 正しいインストール共有で次のコマンド ラインを実行して、新しいヘッド ノード証明書を信頼させます。
PowerShell.exe -ExecutionPolicy ByPass -Command "Import-certificate -FilePath \\<InstallShare>\Certificates\HpcHnPublicCert.cer -CertStoreLocation cert:\LocalMachine\Root"
すべてのヘッド ノードで、PowerShell スクリプト
Update-HpcNodeCertificate.ps1 をダウンロードし、次の PowerShell コマンドを実行して、PrivateCert.pfx新しい証明書をインポートして適用します。 .\Update-HpcNodeCertificate.ps1 -PfxFilePath <path-of-PrivateCert.pfx> -Password <password>
いずれかのヘッド ノードで、次の PowerShell コマンドを実行して、すべてのヘッド ノードに既にインストールされている新しい証明書を適用します。
Add-PSSnapin Microsoft.HPC $thumbprint = (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\HPC -Name SSLThumbprint).SSLThumbPrint Set-HpcClusterRegistry -PropertyName SSLThumbprint -PropertyValue $thumbprint
Burst to Azure IaaS VM 機能を使用している場合は、HPC クラスター マネージャーで [構成] 構成の設定ウィザードの [Azure Key Vault 証明書] ページで値を指定[Azure Deployment Configuration の設定] を選択し、Azure Key Vault 証明書ページで PrivateCert.pfx新しい証明書をインポートします。 または、「Azure Portal で Azure Key Vault 証明書を作成する 」を参照して、 PrivateCert.pfx を Azure Key Vault に手動でインポートし、Azure デプロイ。 [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 クラスターの証明書構成をアップグレードする
次のようにファイル sfclusterconfig.json を変更します。
-
ClusterCertificate
とServerCertificate
の下のThumbprint
の値を置き換えます -
Security
とCertificateInformation
の下にある場合は、名前$id
を持つプロパティを削除します -
clusterConfigurationVersion
を 1.0.0 から 1.0.1 に変更するなど、より高いバージョンに変更する
-
次の PowerShell コマンドを実行して、Service Fabric クラスター構成のアップグレードを開始します。
Connect-ServiceFabricCluster Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath d:\sfclusterconfig.json
アップグレードの状態を照会するには、次のコマンドを使用します。
Get-ServiceFabricClusterConfigurationUpgradeStatus
Service Fabric HA を使用してクラスターで既に期限切れの証明書をローテーションする
- Service Fabric クラスターの復旧
- Azure Service Fabric スタンドアロン クラスター の期限切れの証明書のトラブルシューティング
、Service Fabric クラスターの証明書を更新する方法に関する詳細なオンライン ドキュメントに従います。
- 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>
ブローカー、コンピューティング、およびワークステーション ノードで証明書をローテーションする
たとえば、PrivateCert.pfxなどの新しい CN 証明書を、HPC インストール共有の下の Certificates フォルダーにコピーします。たとえば、\\headnode\REMINST\Certificatesで、新しい名前 HpcCnCommunication.pfx。
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"
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
必要に応じて、新しいベア メタル マシンをデプロイする場合は、HPC クラスター マネージャーを開き、展開 To Do リストに移動します。
展開 用の証明書をインポートを選択して、HpcCnCommunication.pfx名前の新しい CN 証明書を \\headnode\REMINST\Certificates からインポートします。
次の手順
HPC Pack 2019