Certificaten voor een Service Fabric-cluster in Azure toevoegen of verwijderen

U wordt aangeraden vertrouwd te raken met de wijze waarop Service Fabric X.509-certificaten gebruikt en vertrouwd te zijn met de clusterbeveiligingsscenario's. U moet weten wat een clustercertificaat is en waarvoor wordt gebruikt, voordat u verdergaat.

Het standaardgedrag van de Azure Service Fabrics SDK voor het laden van certificaten is het implementeren en gebruiken van het gedefinieerde certificaat met de vervaldatum het verst in de toekomst; ongeacht de primaire of secundaire configuratiedefinitie. Terugvallen op het klassieke gedrag is een niet aanbevolen geavanceerde actie. Hiervoor moet de parameterwaarde 'UseSecondaryIfNewer' worden ingesteld op false in uw Fabric.Code configuratie.

Met Service Fabric kunt u naast clientcertificaten twee clustercertificaten opgeven, een primaire en een secundaire, wanneer u certificaatbeveiliging configureert tijdens het maken van het cluster. Raadpleeg Een Azure-cluster maken via de portal of het maken van een Azure-cluster via Azure Resource Manager voor meer informatie over het instellen ervan tijdens het maken. Als u tijdens het maken slechts één clustercertificaat opgeeft, wordt dit gebruikt als het primaire certificaat. Nadat het cluster is gemaakt, kunt u een nieuw certificaat toevoegen als secundair certificaat.

Notitie

Voor een beveiligd cluster moet altijd ten minste één geldig (niet ingetrokken en niet verlopen) clustercertificaat (primair of secundair) zijn geïmplementeerd (als dat niet het geval is, werkt het cluster niet meer). 90 dagen voordat alle geldige certificaten zijn verlopen, genereert het systeem een waarschuwingstracering en een waarschuwingsstatusgebeurtenis op het knooppunt. Dit zijn momenteel de enige meldingen die Service Fabric verzendt over het verlopen van certificaten.

Notitie

U wordt aangeraden de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Een secundair clustercertificaat toevoegen via de portal

Secundair clustercertificaat kan niet worden toegevoegd via de Azure Portal. Gebruik Azure Resource Manager.

Een clustercertificaat verwijderen met behulp van de portal

Voor een beveiligd cluster hebt u altijd ten minste één geldig (niet ingetrokken en niet verlopen) certificaat nodig. Het certificaat dat het verst in de toekomstige vervaldatum is geïmplementeerd, wordt in gebruik genomen en als u het verwijdert, werkt uw cluster niet meer. zorg ervoor dat u alleen het certificaat verwijdert dat is verlopen of een ongebruikt certificaat dat het meest snel verloopt.

Als u een ongebruikt clusterbeveiligingscertificaat wilt verwijderen, gaat u naar de sectie Beveiliging en selecteert u de optie Verwijderen in het contextmenu van het ongebruikte certificaat.

Als u het certificaat wilt verwijderen dat als primair is gemarkeerd, moet u een secundair certificaat implementeren met een vervaldatum verder in de toekomst dan het primaire certificaat, waardoor automatisch rollover-gedrag wordt ingeschakeld. verwijder het primaire certificaat nadat de automatische rollover is voltooid.

Een secundair certificaat toevoegen met behulp van Azure Resource Manager

Bij deze stappen wordt ervan uitgegaan dat u bekend bent met de werking van Resource Manager en dat u ten minste één Service Fabric-cluster hebt geïmplementeerd met behulp van een Resource Manager-sjabloon en dat u de sjabloon bij de hand hebt die u hebt gebruikt om het cluster in te stellen. Er wordt ook van uitgegaan dat u vertrouwd bent met het gebruik van JSON.

Notitie

Als u op zoek bent naar een voorbeeldsjabloon en parameters die u kunt gebruiken om mee of als uitgangspunt te volgen, downloadt u deze vanuit deze Git-opslagplaats.

Uw Resource Manager-sjabloon bewerken

Voor het gemak van het volgen bevat voorbeeld 5-VM-1-NodeTypes-Secure_Step2.JSON alle wijzigingen die we gaan aanbrengen. het voorbeeld is beschikbaar op git-repo.

Zorg ervoor dat u alle stappen volgt

  1. Open de Resource Manager sjabloon die u hebt gebruikt om uw cluster te implementeren. (Als u het voorbeeld uit de voorgaande opslagplaats hebt gedownload, gebruikt u 5-VM-1-NodeTypes-Secure_Step1.JSON om een beveiligd cluster te implementeren en vervolgens die sjabloon te openen).

  2. Voeg twee nieuwe parameters 'secCertificateThumbprint' en 'secCertificateUrlValue' van het type 'string' toe aan de parametersectie van uw sjabloon. U kunt het volgende codefragment kopiëren en toevoegen aan de sjabloon. Afhankelijk van de bron van uw sjabloon, hebt u deze mogelijk al gedefinieerd. Als dit het probleem is, gaat u verder met de volgende stap.

       "secCertificateThumbprint": {
          "type": "string",
          "metadata": {
            "description": "Certificate Thumbprint"
          }
        },
        "secCertificateUrlValue": {
          "type": "string",
          "metadata": {
            "description": "Refers to the location URL in your key vault where the certificate was uploaded, it is should be in the format of https://<name of the vault>.vault.azure.net:443/secrets/<exact location>"
          }
        },
    
    
  3. Wijzigingen aanbrengen in de resource Microsoft.ServiceFabric/clusters : zoek de resourcedefinitie 'Microsoft.ServiceFabric/clusters' in uw sjabloon. Onder eigenschappen van die definitie vindt u de JSON-tag Certificaat, die er ongeveer uit moet zien als het volgende JSON-fragment:

          "properties": {
            "certificate": {
              "thumbprint": "[parameters('certificateThumbprint')]",
              "x509StoreName": "[parameters('certificateStoreValue')]"
         }
    

    Voeg een nieuwe tag 'thumbprintSecondary' toe en geef deze een waarde '[parameters('secCertificateThumbprint')]'.

    De resourcedefinitie moet er nu als volgt uitzien (afhankelijk van de bron van de sjabloon, is deze mogelijk niet precies hetzelfde als het onderstaande fragment).

          "properties": {
            "certificate": {
              "thumbprint": "[parameters('certificateThumbprint')]",
              "thumbprintSecondary": "[parameters('secCertificateThumbprint')]",
              "x509StoreName": "[parameters('certificateStoreValue')]"
         }
    

    Als u het certificaat wilt verplaatsen, geeft u het nieuwe certificaat op als primair en verplaatst u de huidige primaire als secundaire. Dit resulteert in de rollover van uw huidige primaire certificaat naar het nieuwe certificaat in één implementatiestap.

          "properties": {
            "certificate": {
              "thumbprint": "[parameters('secCertificateThumbprint')]",
              "thumbprintSecondary": "[parameters('certificateThumbprint')]",
              "x509StoreName": "[parameters('certificateStoreValue')]"
         }
    
  4. Breng wijzigingen aan in alleresourcedefinities van Microsoft.Compute/virtualMachineScaleSets - Zoek de resourcedefinitie Microsoft.Compute/virtualMachineScaleSets. Schuif naar de 'uitgever': 'Microsoft.Azure.ServiceFabric', onder 'virtualMachineProfile'.

    In de instellingen van de Service Fabric-uitgever ziet u iets dat er ongeveer als volgt uitziet.

    Json_Pub_Setting1

    Voeg de nieuwe certificaatvermeldingen eraan toe

                   "certificateSecondary": {
                        "thumbprint": "[parameters('secCertificateThumbprint')]",
                        "x509StoreName": "[parameters('certificateStoreValue')]"
                        }
                      },
    
    

    De eigenschappen moeten er nu als volgt uitzien

    Json_Pub_Setting2

    Als u het certificaat wilt verplaatsen, geeft u het nieuwe certificaat op als primair en verplaatst u de huidige primaire als secundaire. Dit resulteert in de rollover van uw huidige certificaat naar het nieuwe certificaat in één implementatiestap.

                   "certificate": {
                       "thumbprint": "[parameters('secCertificateThumbprint')]",
                       "x509StoreName": "[parameters('certificateStoreValue')]"
                         },
                   "certificateSecondary": {
                        "thumbprint": "[parameters('certificateThumbprint')]",
                        "x509StoreName": "[parameters('certificateStoreValue')]"
                        }
                      },
    

    De eigenschappen moeten er nu als volgt uitzien
    Json_Pub_Setting3

  5. Breng wijzigingen aan in alleresourcedefinities van Microsoft.Compute/virtualMachineScaleSets : zoek de resourcedefinitie Microsoft.Compute/virtualMachineScaleSets. Schuif naar 'vaultCertificates': , onder OSProfile. Het ziet er ongeveer als volgt uit.

    Json_Pub_Setting4

    Voeg de secCertificateUrlValue eraan toe. gebruik het volgende codefragment:

                      {
                        "certificateStore": "[parameters('certificateStoreValue')]",
                        "certificateUrl": "[parameters('secCertificateUrlValue')]"
                      }
    
    

    Nu moet de resulterende Json er ongeveer als volgt uitzien. Json_Pub_Setting5

Notitie

Zorg ervoor dat u stap 4 en 5 hebt herhaald voor alle resourcedefinities Nodetypes/Microsoft.Compute/virtualMachineScaleSets in uw sjabloon. Als u een van deze functies mist, wordt het certificaat niet geïnstalleerd op die virtuele-machineschaalset en krijgt u onvoorspelbare resultaten in uw cluster, waaronder het cluster dat uitvalt (als u geen geldige certificaten hebt die het cluster voor beveiliging kan gebruiken). Controleer dit dus nog eens voordat u verdergaat.

Bewerk het sjabloonbestand om de nieuwe parameters weer te geven die u hierboven hebt toegevoegd

Als u het voorbeeld uit de git-repo gebruikt om mee te doen, kunt u beginnen met het aanbrengen van wijzigingen in Het voorbeeld 5-VM-1-NodeTypes-Secure.parameters_Step2.JSON

Bewerk uw Resource Manager sjabloonparameterbestand en voeg de twee nieuwe parameters voor secCertificateThumbprint en secCertificateUrlValue toe.

    "secCertificateThumbprint": {
      "value": "thumbprint value"
    },
    "secCertificateUrlValue": {
      "value": "Refers to the location URL in your key vault where the certificate was uploaded, it is should be in the format of https://<name of the vault>.vault.azure.net:443/secrets/<exact location>"
     },

De sjabloon implementeren in Azure

  • U bent nu klaar om uw sjabloon te implementeren in Azure. Open een Azure PowerShell versie 1+-opdrachtprompt.
  • Meld u aan bij uw Azure-account en selecteer het specifieke Azure-abonnement. Dit is een belangrijke stap voor mensen die toegang hebben tot meer dan één Azure-abonnement.
Connect-AzAccount
Select-AzSubscription -SubscriptionId <Subscription ID> 

Test de sjabloon voordat u deze implementeert. Gebruik dezelfde resourcegroep waarop uw cluster momenteel is geïmplementeerd.

Test-AzResourceGroupDeployment -ResourceGroupName <Resource Group that your cluster is currently deployed to> -TemplateFile <PathToTemplate>

Implementeer de sjabloon in uw resourcegroep. Gebruik dezelfde resourcegroep waarop uw cluster momenteel is geïmplementeerd. Voer de opdracht New-AzResourceGroupDeployment uit. U hoeft de modus niet op te geven, omdat de standaardwaarde incrementeel is.

Notitie

Als u Modus instelt op Voltooid, kunt u per ongeluk resources verwijderen die zich niet in uw sjabloon bevinden. Gebruik het dus niet in dit scenario.

New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName <Resource Group that your cluster is currently deployed to> -TemplateFile <PathToTemplate>

Hier volgt een ingevuld voorbeeld van dezelfde PowerShell.

$ResourceGroup2 = "chackosecure5"
$TemplateFile = "C:\GitHub\Service-Fabric\ARM Templates\Cert Rollover Sample\5-VM-1-NodeTypes-Secure_Step2.json"
$TemplateParmFile = "C:\GitHub\Service-Fabric\ARM Templates\Cert Rollover Sample\5-VM-1-NodeTypes-Secure.parameters_Step2.json"

New-AzResourceGroupDeployment -ResourceGroupName $ResourceGroup2 -TemplateParameterFile $TemplateParmFile -TemplateUri $TemplateFile -clusterName $ResourceGroup2

Zodra de implementatie is voltooid, maakt u verbinding met uw cluster met behulp van het nieuwe certificaat en voert u enkele query's uit. Als je in staat bent om te doen. Vervolgens kunt u het oude certificaat verwijderen.

Als u een zelfondertekend certificaat gebruikt, vergeet dan niet om deze te importeren in uw lokale TrustedPeople-certificaatarchief.

######## Set up the certs on your local box
Import-PfxCertificate -Exportable -CertStoreLocation Cert:\CurrentUser\TrustedPeople -FilePath c:\Mycertificates\chackdanTestCertificate9.pfx -Password (ConvertTo-SecureString -String abcd123 -AsPlainText -Force)
Import-PfxCertificate -Exportable -CertStoreLocation Cert:\CurrentUser\My -FilePath c:\Mycertificates\chackdanTestCertificate9.pfx -Password (ConvertTo-SecureString -String abcd123 -AsPlainText -Force)

Voor een beknopt overzicht vindt u hier de opdracht om verbinding te maken met een beveiligd cluster

$ClusterName= "chackosecure5.westus.cloudapp.azure.com:19000"
$CertThumbprint= "70EF5E22ADB649799DA3C8B6A6BF7SD1D630F8F3" 

Connect-serviceFabricCluster -ConnectionEndpoint $ClusterName -KeepAliveIntervalInSec 10 `
    -X509Credential `
    -ServerCertThumbprint $CertThumbprint  `
    -FindType FindByThumbprint `
    -FindValue $CertThumbprint `
    -StoreLocation CurrentUser `
    -StoreName My

Voor een beknopt overzicht vindt u hier de opdracht om de clusterstatus op te halen

Get-ServiceFabricClusterHealth 

Clientcertificaten implementeren in het cluster.

U kunt dezelfde stappen gebruiken als beschreven in de voorgaande stappen 5 om de certificaten vanuit een sleutelkluis naar de knooppunten te implementeren. U hoeft alleen maar verschillende parameters te definiëren en te gebruiken.

Clientcertificaten toevoegen of verwijderen

Naast de clustercertificaten kunt u clientcertificaten toevoegen om beheerbewerkingen uit te voeren op een Service Fabric-cluster.

U kunt twee soorten clientcertificaten toevoegen: Beheer of Alleen-lezen. Deze kunnen vervolgens worden gebruikt om de toegang tot de beheerbewerkingen en querybewerkingen op het cluster te beheren. De clustercertificaten worden standaard toegevoegd aan de lijst met toegestane Beheer certificaten.

U kunt een willekeurig aantal clientcertificaten opgeven. Elke toevoeging/verwijdering resulteert in een configuratie-update voor het Service Fabric-cluster.

Clientcertificaten toevoegen - Beheer of Read-Only via de portal

  1. Navigeer naar de sectie Beveiliging en selecteer de knop '+ Verificatie' boven aan de beveiligingssectie.
  2. Kies in de sectie 'Verificatie toevoegen' het 'Verificatietype' - 'Alleen-lezen client' of 'Beheer-client'
  3. Kies nu de autorisatiemethode. Hiermee wordt aan Service Fabric aangegeven of dit certificaat moet worden opgezoekd met behulp van de onderwerpnaam of de vingerafdruk. Over het algemeen is het geen goede beveiligingspraktijk om de autorisatiemethode van de onderwerpnaam te gebruiken.

Clientcertificaat toevoegen

Verwijderen van clientcertificaten - Beheer of Read-Only met behulp van de portal

Als u wilt verwijderen dat een secundair certificaat wordt gebruikt voor clusterbeveiliging, gaat u naar de sectie Beveiliging en selecteert u de optie Verwijderen in het contextmenu van het specifieke certificaat.

Toepassingscertificaten toevoegen aan een virtuele-machineschaalset

Zie dit PowerShell-voorbeeldscript voor het implementeren van een certificaat dat u voor uw toepassingen in uw cluster gebruikt.

Volgende stappen

Lees deze artikelen voor meer informatie over clusterbeheer: