5

Ich muss ein Zertifikat in einem Service Fabric-Cluster installieren, das ich mit einer ARM-Vorlage erstellt habe. Ich konnte ein Zertifikat mit dem privaten Schlüssel installieren Sie den folgenden Helfer Powershell-Befehl:Installieren eines Zertifikats in einem Service Fabric-Cluster ohne einen privaten Schlüssel

> Invoke-AddCertToKeyVault 

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

Sobald dieses Zertifikat in Azure Key Vault ist, kann ich meine ARM Vorlage ändern automatisch das Zertifikat installiert auf die Knoten im Cluster:

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

das Problem ist, dass die Invoke-AddCertToKeyVault mir eine PFX-Datei zu schaffen, erwartet unter der Annahme, ich den privaten Schlüssel haben.

Das Skript die folgende JSON blob schafft:

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

ich das Skript geändert Passwort und ändern Datentyp ‚cer‘ zu entfernen, aber wenn ich die Vorlage in Azure bereitgestellt sagte es der Datentyp war nicht mehr gültig .

Wie kann ich ein Zertifikat in einem Service Fabric-Cluster bereitstellen, das den privaten Schlüssel nicht enthält?

Antwort

3

1) SF ist nicht wirklich wichtig, wenn Sie .cer oder .pfx verwendet haben. Bei allen SF-Anforderungen muss das Zertifikat im lokalen Zertifikatspeicher in der VM verfügbar sein.

2) Das Problem ist, dass der CRP-Agent, der das Zertifikat vom Schlüsselvault zum lokalen Zertifikatspeicher in der VM installiert, nur noch .pfx unterstützt.

So, jetzt haben Sie zwei Möglichkeiten

1) ohne privaten Schlüssel eine PFX-Datei erstellen und verwenden es

Hier ist, wie über C# (oder Powershell) Legen Sie das Zertifikat in ein X509Certificate2 Objekt zu tun dann die Exportverfahren für X509ContentType = Pfx verwenden https://msdn.microsoft.com/en-us/library/24ww6yzk(v=vs.110).aspx

2) Bereitstellen des cer eine benutzerdefinierte VM Erweiterung. Da .cer nur ein Public-Key-Zertifikat ist, sollte es keine Datenschutzanforderungen geben. Sie können das Zertifikat einfach in einen Blob hochladen und eine benutzerdefinierte Skript-Erweiterung herunterladen und auf dem Computer installieren.