5

ARM テンプレートを使用して作成した Service Fabric クラスターに証明書をインストールする必要があります。次のヘルパーpowershellコマンドを使用して、秘密鍵で証明書をインストールできました。

> Invoke-AddCertToKeyVault

https://github.com/ChackDan/Service-Fabric/tree/master/Scripts/ServiceFabricRPHelpers

この証明書が Azure Key Vault に入ったら、ARM テンプレートを変更して、クラスター内のノードに証明書を自動的にインストールできます。

"osProfile": {
    "secrets": [
        {
            "sourceVault": {
                "id": "[parameters('vaultId')]"
            },
            "vaultCertificates": [
                {
                    "certificateStore": "My",
                    "certificateUrl": "https://mykeyvault.vault.azure.net:443/secrets/fabrikam/9d1adf93371732434"
                }
            ]          
        }
    ]
}

問題は、Invoke-AddCertToKeyVault が、私が秘密鍵を持っていると仮定して pfx ファイルを提供することを期待していることです。

スクリプトは、次の JSON BLOB を作成しています。

$jsonBlob = @{
    data = $base64
    dataType = 'pfx'
    password = $Password
} | ConvertTo-Json

スクリプトを修正してパスワードを削除し、dataType を 'cer' に変更しましたが、テンプレートを Azure にデプロイすると、dataType が無効になったと表示されました。

秘密キーを含まないサービス ファブリック クラスターに証明書をデプロイするにはどうすればよいですか?

4

1 に答える 1

3

1) SF は、.cer と .pfx のどちらを使用してもあまり気にしません。すべての SF のニーズは、証明書が VM のローカル証明書ストアで利用可能であることです。

2) あなたが直面している問題は、keyvault から VM のローカル証明書ストアに証明書をインストールする CRP エージェントが、現在 .pfx のみをサポートしていることです。

だから今、あなたには2つの選択肢があります

1) 秘密鍵なしで pfx ファイルを作成し、それを使用する

C# (または powershell) で行う方法は次のとおりです。証明書を X509Certificate2 オブジェクトにロードします。次に、X509ContentType = Pfx の export メソッドを使用し ます https://msdn.microsoft.com/en-us/library/24ww6yzk(v=vs.110 .aspx

2) カスタム VM 拡張機能を使用して .cer をデプロイします。.cer は公開鍵証明書にすぎないため、プライバシー要件はありません。証明書を BLOB にアップロードするだけで、カスタム スクリプト拡張機能を使用して証明書をダウンロードし、マシンにインストールできます。

于 2016-06-09T22:06:41.010 に答える