Verwalten von Zertifikaten für softwaredefinierte Azure Netzwerke

Gilt für: Azure Stack HCI, Versionen 22H2 und 21H2, Windows Server 2022, Windows Server 2019, Windows Server 2016

In diesem Thema erfahren Sie, wie Sie Zertifikate für die Northbound- und Southbound-Kommunikation von Netzwerkcontrollern verwalten, wenn Sie ein softwaredefiniertes Netzwerk (SDN) in Windows Server 2019 oder 2016 Datacenter bereitstellen und System Center Virtual Machine Manager (SCVMM) als SDN-Verwaltungsclient verwenden.

Hinweis

Eine Übersicht über den Netzwerkcontroller finden Sie unter Was ist ein Netzwerkcontroller?.

Wenn Sie die Kommunikation des Netzwerkcontrollers nicht mithilfe von Kerberos schützen, können Sie X.509-Zertifikate für die Authentifizierung, Autorisierung und Verschlüsselung verwenden.

SDN in Windows Server 2019 und 2016 Datacenter unterstützt sowohl selbstsignierte X.509-Zertifikate als auch X.509-Zertifikate, die von einer Zertifizierungsstelle (ZS) signiert wurden. In diesem Thema erfahren Sie Schritt für Schritt, wie Sie diese Zertifikate erstellen und anwenden, um die Northbound-Kommunikationskanäle des Netzwerkcontrollers mit Verwaltungsclients sowie die Southbound-Kommunikation mit Netzwerkgeräten wie dem softwarebasierten Lastenausgleich (Software Load Balancer, SLB) zu schützen.

Bei Verwendung der zertifikatbasierten Authentifizierung müssen Sie ein Zertifikat auf Netzwerkcontrollerknoten registrieren, das auf folgende Arten verwendet wird.

  1. Verschlüsselung der Northbound-Kommunikation mit Secure Sockets Layer (SSL) zwischen Netzwerkcontrollerknoten und Verwaltungsclients (beispielsweise System Center Virtual Machine Manager)
  2. Authentifizierung zwischen Netzwerkcontrollerknoten und Southbound-Geräten und -Diensten wie Hyper-V-Hosts und softwarebasierten Lastenausgleichsmodulen (Software Load Balancers, SLBs)

Erstellen und Registrieren eines X.509-Zertifikats

Sie können entweder ein selbstsigniertes Zertifikat erstellen und registrieren oder ein Zertifikat, das von einer Zertifizierungsstelle ausgestellt wird.

Hinweis

Wenn Sie SCVMM zum Bereitstellen des Netzwerkcontrollers verwenden, muss das X.509-Zertifikat, das zum Verschlüsseln der Northbound-Kommunikation verwendet wird, während der Konfiguration der Netzwerkcontroller-Dienstvorlage angegeben werden.

Die Zertifikatkonfiguration muss folgende Werte enthalten.

  • Der Wert für das Textfeld RestEndPoint muss entweder der vollqualifizierte Domänenname (Fully Qualified Domain Name, FQDN) oder die IP-Adresse des Netzwerkcontrollers sein.
  • Der Wert von RestEndPoint muss dem allgemeinen Antragstellernamen (Common Name, CN) des X.509-Zertifikats entsprechen.

Erstellen eines selbstsignierten X.509-Zertifikats

Sie können ein selbstsigniertes X.509-Zertifikat erstellen und mit dem (kennwortgeschützten) privaten Schlüssel exportieren, indem Sie die folgenden Schritte für Netzwerkcontrollerbereitstellungen mit einzelnem oder mehreren Knoten ausführen.

Wenn Sie selbstsignierte Zertifikate erstellen, können Sie die folgenden Richtlinien verwenden.

  • Sie können die IP-Adresse des Netzwerkcontroller-REST-Endpunkts für den DnsName-Parameter verwenden – dies wird jedoch nicht empfohlen, da es erfordert, dass sich alle Netzwerkcontroller-Knoten in einem einzelnen Verwaltungssubnetz befinden (z. B. in einem einzelnen Rack)
  • Bei Netzwerkcontrollerbereitstellungen mit mehreren Knoten wird der von Ihnen angegebene DNS-Name zum FQDN des Netzwerkcontrollerclusters. (A-Einträge des DNS-Hosts werden automatisch erstellt.)
  • Bei Netzwerkcontrollerbereitstellungen mit einem einzelnen Knoten kann sich der DNS-Name aus dem Hostnamen des Netzwerkcontrollers und dem vollständigen Domänennamen zusammensetzen.

Mehrere Knoten

Ein selbstsigniertes Zertifikat kann mithilfe des Windows PowerShell-Befehls New-SelfSignedCertificate erstellt werden.

Syntax

New-SelfSignedCertificate -KeyUsageProperty All -Provider "Microsoft Strong Cryptographic Provider" -FriendlyName "<YourNCComputerName>" -DnsName @("<NCRESTName>")

Beispielsyntax

New-SelfSignedCertificate -KeyUsageProperty All -Provider "Microsoft Strong Cryptographic Provider" -FriendlyName "MultiNodeNC" -DnsName @("NCCluster.Contoso.com")

Einzelner Knoten

Ein selbstsigniertes Zertifikat kann mithilfe des Windows PowerShell-Befehls New-SelfSignedCertificate erstellt werden.

Syntax

New-SelfSignedCertificate -KeyUsageProperty All -Provider "Microsoft Strong Cryptographic Provider" -FriendlyName "<YourNCComputerName>" -DnsName @("<NCFQDN>")

Beispielsyntax

New-SelfSignedCertificate -KeyUsageProperty All -Provider "Microsoft Strong Cryptographic Provider" -FriendlyName "SingleNodeNC" -DnsName @("SingleNodeNC.Contoso.com")

Erstellen eines von einer Zertifizierungsstelle signierten X.509-Zertifikats

Wenn Sie ein Zertifikat unter Verwendung einer Zertifizierungsstelle erstellen möchten, müssen Sie bereits eine Public Key-Infrastruktur (PKI) mit Active Directory-Zertifikatdienste (Active Directory Certificate Services, AD CS) bereitgestellt haben.

Hinweis

Sie können Drittanbieter-Zertifizierungsstellen oder -Tools wie „openssl“ verwenden, um ein Zertifikat für die Verwendung mit dem Netzwerkcontroller zu erstellen. Dieses Thema enthält allerdings eine AD CS-spezifische Anleitung. Informationen zur Verwendung einer Drittanbieter-Zertifizierungsstelle oder eines Drittanbietertools finden Sie in der Dokumentation für die verwendete Software.

Die Erstellung eines Zertifikats mit einer Zertifizierungsstelle umfasst folgende Schritte.

  1. Konfigurieren der Zertifikatvorlage (entweder durch Sie selbst oder durch den Domänen- oder Sicherheitsadministrator Ihrer Organisation)
  2. Anfordern eines neuen Zertifikats von der Zertifizierungsstelle (entweder durch Sie selbst oder durch den Netzwerkcontrolleradministrator oder den SCVMM-Administrator Ihrer Organisation)

Anforderungen im Zusammenhang mit der Zertifikatkonfiguration

Stellen Sie beim Konfigurieren einer Zertifikatvorlage im nächsten Schritt sicher, dass die von Ihnen konfigurierte Vorlage die folgenden erforderlichen Elemente enthält.

  1. Der Antragstellername des Zertifikats muss der FQDN des Hyper-V-Hosts sein
  2. Das Zertifikat muss im persönlichen Speicher des lokalen Computers (My – cert:\localmachine\my) platziert werden
  3. Das Zertifikat muss über Anwendungsrichtlinien für Serverauthentifizierung (EKU: 1.3.6.1.5.5.7.3.1) und Clientauthentifizierung (EKU: 1.3.6.1.5.5.7.3.2) verfügen.

Hinweis

Wenn der persönliche Zertifikatspeicher (My – cert:\localmachine\my) auf dem Hyper-V-Host über mehrere X.509-Zertifikate mit dem Antragstellernamen (CN) als vollständig qualifiziertem Domänennamen (Fully Qualified Domain Name, FQDN) verfügt, stellen Sie sicher, dass das von SDN verwendete Zertifikat über eine zusätzliche benutzerdefinierte Eigenschaft vom Typ „Erweiterte Schlüsselverwendung“ mit der OID 1.3.6.1.4.1.311.95.1.1.1 verfügt. Andernfalls funktioniert die Kommunikation zwischen Netzwerkcontroller und Host möglicherweise nicht.

So konfigurieren Sie die Zertifikatvorlage

Hinweis

Überprüfen Sie vor der Ausführung dieses Verfahrens die Zertifikatanforderungen und die verfügbaren Zertifikatvorlagen in der Zertifikatvorlagenkonsole. Sie können entweder eine vorhandene Vorlage ändern oder ein Duplikat einer vorhandenen Vorlage erstellen und dann die Kopie der Vorlage ändern. Es wird empfohlen, eine Kopie einer vorhandenen Vorlage zu erstellen.

  1. Klicken Sie auf dem Server, auf dem AD CS installiert ist, im Server-Manager auf Tools und anschließend auf Zertifizierungsstelle. Die Microsoft Management Console (MMC) für die Zertifizierungsstelle wird geöffnet.
  2. Doppelklicken Sie in der MMC auf den Namen der Zertifizierungsstelle, klicken Sie mit der rechten Maustaste auf Zertifikatvorlagen, und klicken Sie anschließend auf Verwalten.
  3. Die Konsole „Zertifikatvorlagen“ wird geöffnet. Im Detailbereich werden alle Zertifikatvorlagen angezeigt.
  4. Klicken Sie im Detailbereich auf die Vorlage, die Sie duplizieren möchten.
  5. Klicken Sie auf das Menü Aktion und anschließend auf Doppelte Vorlage. Das Dialogfeld Eigenschaften der Vorlage wird geöffnet.
  6. Klicken Sie im Vorlagendialogfeld Eigenschaften auf der Registerkarte Antragstellername auf Informationen werden in der Anforderung angegeben. (Diese Einstellung ist für SSL-Zertifikate des Netzwerkcontrollers erforderlich.)
  7. Achten Sie im Vorlagendialogfeld Eigenschaften auf der Registerkarte Anforderungsverarbeitung darauf, dass Exportieren von privatem Schlüssel zulassen ausgewählt ist. Stellen Sie außerdem sicher, dass der Zweck Signatur und Verschlüsselung ausgewählt ist.
  8. Wählen Sie im Vorlagendialogfeld Eigenschaften auf der Registerkarte Erweiterungen die Option Schlüsselverwendung aus, und klicken Sie anschließend auf Bearbeiten.
  9. Achten Sie unter Signatur darauf, dass Digitale Signatur ausgewählt ist.
  10. Wählen Sie im Vorlagendialogfeld Eigenschaften auf der Registerkarte Erweiterungen die Option Anwendungsrichtlinien aus, und klicken Sie anschließend auf Bearbeiten.
  11. Achten Sie unter Anwendungsrichtlinien darauf, dass Clientauthentifizierung und Serverauthentifizierung aufgeführt sind.
  12. Speichern Sie die Kopie der Zertifikatvorlage mit einem eindeutigen Namen (beispielsweise Network Controller template).

So fordern Sie ein Zertifikat von der Zertifizierungsstelle an

Zertifikate können über das Zertifikate-Snap-In angefordert werden. Sie können einen beliebigen Zertifikattyp anfordern, der von einem Administrator der Zertifizierungsstelle, die die Zertifikatanforderung verarbeitet, vorkonfiguriert und verfügbar gemacht wurde.

Für dieses Verfahren ist mindestens die Mitgliedschaft in der Gruppe Benutzer oder in der lokalen Gruppe Administratoren erforderlich.

  1. Öffnen Sie das Zertifikate-Snap-In für einen Computer.
  2. Klicken Sie in der Konsolenstruktur auf Zertifikate (Lokaler Computer). Wählen Sie den Zertifikatspeicher Persönlich aus.
  3. Zeigen Sie im Menü Aktion auf **Alle Aufgaben, und klicken Sie anschließend auf **Neues Zertifikat anfordern, um den Assistenten für die Zertifikatregistrierung zu starten. Klicken Sie auf Weiter.
  4. Wählen Sie die Zertifikatregistrierungs-Azure Policy Vom Administrator konfiguriert aus, und klicken Sie auf Weiter.
  5. Wählen Sie die Active Directory-Registrierungsrichtlinie aus (basierend auf der ZS-Vorlage, die Sie im vorherigen Abschnitt konfiguriert haben).
  6. Erweitern Sie den Abschnitt Details, und konfigurieren Sie die folgenden Elemente.
    1. Stellen Sie sicher, dass Schlüsselverwendung sowohl Digitale Signatur** als auch **Schlüsselverschlüsselung enthält.
    2. Stellen Sie sicher, dass Anwendungsrichtlinien sowohl Serverauthentifizierung (1.3.6.1.5.5.7.3.1) als auch Clientauthentifizierung (1.3.6.1.5.5.7.3.2) enthält.
  7. Klicken Sie auf Eigenschaften.
  8. Wählen Sie auf der Registerkarte Antragsteller unter Antragstellername > Typ die Option Allgemeiner Name aus. Geben Sie als Wert Network Controller REST Endpoint an.
  9. Klicken Sie auf Übernehmen, und klicken Sie anschließend auf OK.
  10. Klicken Sie auf Registrieren.

Klicken Sie in der Zertifikate-MMC auf den persönlichen Speicher, um das registrierte Zertifikat der Zertifizierungsstelle anzuzeigen.

Exportieren und Kopieren des Zertifikats in die SCVMM-Bibliothek

Nachdem Sie ein selbstsigniertes oder ein von einer Zertifizierungsstelle signiertes Zertifikat erstellt haben, müssen Sie es mit dem privaten Schlüssel (im PFX-Format) und ohne den privaten Schlüssel (im Base64-CER-Format) aus dem Zertifikate-Snap-In exportieren.

Anschließend müssen Sie die beiden exportierten Dateien in die Ordner ServerCertificate.cr und NCCertificate.cr kopieren, die Sie beim Importieren der Netzwerkcontroller-Dienstvorlage angegeben haben.

  1. Öffnen Sie das Zertifikate-Snap-In (certlm.msc), und navigieren Sie im persönlichen Zertifikatspeicher für den lokalen Computer zu dem Zertifikat.
  2. Klicken Sie mit der rechten Maustaste auf das Zertifikat, und klicken Sie auf Alle Aufgaben und auf Exportieren. Der Zertifikatexport-Assistent wird geöffnet. Klicken Sie auf Weiter.
  3. Wählen Sie die Option Ja, privaten Schlüssel exportieren aus, und klicken Sie auf Weiter.
  4. Wählen Sie die Option Privater Informationsaustausch – PKCS #12 (.PFX) aus, und übernehmen Sie die Standardeinstellung Wenn möglich, alle Zertifikate im Zertifizierungspfad einbeziehen.
  5. Weisen Sie die Benutzer/Gruppen sowie ein Kennwort für das Zertifikat hinzu, das Sie exportieren. Klicken Sie auf Weiter.
  6. Navigieren Sie auf der Seite Zu exportierende Datei zum Standort, an dem Sie die exportierte Datei speichern möchten, und benennen Sie sie.
  7. Exportieren Sie außerdem das Zertifikat im CER-Format. Hinweis: Deaktivieren Sie die Option Ja, privaten Schlüssel exportieren, um zu einem CER-Format zu exportieren.
  8. Kopieren Sie die PFX-Datei in den Ordner „ServerCertificate.cr“.
  9. Kopieren Sie die CER-Datei in den Ordner „NCCertificate.cr“.

Aktualisieren Sie anschließend diese Ordner in der SCVMM-Bibliothek, und vergewissern Sie sich, dass Sie diese Zertifikate kopiert haben. Fahren Sie mit der Konfiguration und Bereitstellung der Netzwerkcontroller-Dienstvorlage fort.

Authentifizieren von Southbound-Geräten und -Diensten

Bei der Netzwerkcontrollerkommunikation mit Hosts und SLB-MUX-Geräten werden Zertifikate für die Authentifizierung verwendet. Die Kommunikation mit den Hosts erfolgt über das OVSDB-Protokoll. Bei der Kommunikation mit den SLB-MUX-Geräten wird dagegen das WCF-Protokoll genutzt.

Hyper-V-Hostkommunikation mit dem Netzwerkcontroller

Bei der Kommunikation mit den Hyper-V-Hosts über OVSDB muss der Netzwerkcontroller den Hostcomputern ein Zertifikat präsentieren. Standardmäßig ruft SCVMM das auf dem Netzwerkcontroller konfigurierte SSL-Zertifikat ab und verwendet es für die Southbound-Kommunikation mit den Hosts.

Aus diesem Grund muss für das SSL-Zertifikat die erweiterte Schlüsselverwendung für die Clientauthentifizierung konfiguriert sein. Dieses Zertifikat ist in der Server-REST-Ressource konfiguriert und kann durch Ausführen des Windows PowerShell-Befehls Get-NetworkControllerServer angezeigt werden. (Hyper-V-Hosts werden im Netzwerkcontroller als Serverressource dargestellt.)

Hier sehen Sie ein Teilbeispiel der Server-REST-Ressource.

   "resourceId": "host31.fabrikam.com",
      "properties": {
        "connections": [
          {
            "managementAddresses": [
               "host31.fabrikam.com"
            ],
            "credential": {
              "resourceRef": "/credentials/a738762f-f727-43b5-9c50-cf82a70221fa"
            },
            "credentialType": "X509Certificate"
          }
        ],

Für die gegenseitige Authentifizierung muss der Hyper-V-Host ebenfalls über ein Zertifikat verfügen, um mit dem Netzwerkcontroller kommunizieren zu können.

Sie können das Zertifikat einer Zertifizierungsstelle (ZS) registrieren. Wenn auf dem Hostcomputer kein CA-basiertes Zertifikat gefunden wird, erstellt SCVMM ein selbstsigniertes Zertifikat und stellt es auf dem Hostcomputer bereit.

Die Zertifikate des Netzwerkcontrollers und des Hyper-V-Hosts erfordern gegenseitiges Vertrauen. Das Stammzertifikat des Hyper-V-Hostzertifikats muss im Speicher für vertrauenswürdige Stammzertifizierungsstellen des Netzwerkcontrollers für den lokalen Computer vorhanden sein (und umgekehrt).

Bei Verwendung selbstsignierter Zertifikate stellt SCVMM sicher, dass die erforderlichen Zertifikate im Speicher für vertrauenswürdige Stammzertifizierungsstellen für den lokalen Computer vorhanden sind.

Bei Verwendung ZS-basierter Zertifikate für die Hyper-V-Hosts müssen Sie sicherstellen, dass das ZS-Stammzertifikat im Speicher für vertrauenswürdige Stammzertifizierungsstellen des Netzwerkcontrollers für den lokalen Computer vorhanden ist.

Software Azure Load Balancer MUX-Kommunikation mit Netzwerkcontroller

Der Software Azure Load Balancer Multiplexor (MUX) und der Netzwerkcontroller kommunizieren über das WCF-Protokoll und verwenden Zertifikate für die Authentifizierung.

Standardmäßig ruft SCVMM das auf dem Netzwerkcontroller konfigurierte SSL-Zertifikat ab und verwendet es für die Southbound-Kommunikation mit den MUX-Geräten. Dieses Zertifikat ist in der REST-Ressource „NetworkControllerLoadBalancerMux“ konfiguriert und kann durch Ausführen des PowerShell-Cmdlets Get-NetworkControllerLoadBalancerMux angezeigt werden.

Teilbeispiel für eine MUX-REST-Ressource:

      "resourceId": "slbmux1.fabrikam.com",
      "properties": {
        "connections": [
          {
            "managementAddresses": [
               "slbmux1.fabrikam.com"
            ],
            "credential": {
              "resourceRef": "/credentials/a738762f-f727-43b5-9c50-cf82a70221fa"
            },
            "credentialType": "X509Certificate"
          }
        ],

Für die gegenseitige Authentifizierung muss auch auf den SLB-MUX-Geräten ein Zertifikat vorhanden sein. Dieses Zertifikat wird automatisch von SCVMM konfiguriert, wenn Sie den softwarebasierten Lastenausgleich mithilfe von SCVMM bereitstellen.

Wichtig

Auf den Host- und SLB-Knoten ist es wichtig, dass der Zertifikatspeicher der vertrauenswürdigen Stammzertifizierungsstellen keine Zertifikate enthält, bei denen „Ausgestellt für“ nicht mit „Ausgestellt von“ identisch ist. Andernfalls ist die Kommunikation zwischen dem Netzwerkcontroller und dem Southbound-Gerät nicht erfolgreich.

Die Zertifikate des Netzwerkcontrollers und von SLB-MUX erfordern gegenseitiges Vertrauen. (Das Stammzertifikat des SLB-MUX-Zertifikats muss im Speicher für vertrauenswürdige Stammzertifizierungsstellen des Netzwerkcontrollercomputers vorhanden sein und umgekehrt). Bei Verwendung selbstsignierter Zertifikate stellt SCVMM sicher, dass die erforderlichen Zertifikate im Speicher für vertrauenswürdige Stammzertifizierungsstellen für den lokalen Computer vorhanden sind.