キー ストアから VM への証明書の展開は、特定の json ドキュメントとして保存する必要があります。ARM テンプレート内からは実行していませんが、Powershell では次を使用します。
$cert = Get-Content $certLocation -Encoding Byte;
$cert = [System.Convert]::ToBase64String($cert);
$json = @"
{
"data" : "$cert",
"dataType": "pfx",
"password": "$password"
}
"@
$package = [System.Text.Encoding]::UTF8.GetBytes($json);
$package = [System.Convert]::ToBase64String($package);
$secret = ConvertTo-SecureString -String $package -AsPlainText -Force;
理論的には、これを取得して $secret 値を ARM テンプレートに挿入できれば、目的を達成できるはずです。
この時点での $password はプラン テキストであり、セキュリティで保護された文字列としてではなく、Azure コンピューティングがそれを使用して証明書をインストールできることに注意してください。
次に、クラスター ARM テンプレートで、VMSS OS プロファイルの証明書とキー コンテナーを参照できます。
"osProfile": {
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]",
"computernamePrefix": "[parameters('vmNodeType0Name')]",
"secrets": [
{
"sourceVault": {
"id": "[parameters('sourceVault')]"
},
"vaultCertificates": [
{
"certificateStore": "My",
"certificateUrl": "[parameters('clusterCertificateUrl')]"
},
{
"certificateStore": "My",
"certificateUrl": "[parameters('adminCertificateUrl')]"
}
]
}
]
}
次に、Service Fabric リソースのプロパティの下にある同じ ARM テンプレート内で、使用する特定の証明書を参照します。
"certificate": {
"thumbprint": "[parameters('clusterCertificateThumbPrint')]",
"x509StoreName": "My"
},
"clientCertificateCommonNames": [],
"clientCertificateThumbprints": [{
"CertificateThumbprint": "[parameters('adminCertificateThumbPrint')]",
"IsAdmin": true
}],
ここで役立つ場合は、githubでの私の試みへのリンクです