Adam the Automator

Wenn Sie bereits Remote-Befehle mit PowerShell-Remoting (PSRemoting) ausführen, wissen Sie, wie praktisch die Funktion ist. Sie können eine Verbindung zu einem oder mehreren Remotecomputern herstellen und diese wie lokal verwalten. PSRemoting hängt von der Windows-Remoteverwaltung (WinRM) ab, um dies zu ermöglichen, und wenn Sie WinRM nicht über SSL verwenden, öffnen Sie sich möglicherweise einigen Sicherheitsproblemen.

In diesem praktischen Tutorial erfahren Sie, wie Sie Windows auf dem Client und Server für die Verwendung von WinRM über HTTPS (SSL) einrichten und Zertifikate zur Authentifizierung bei Verwendung von WinRM über HTTPS verwenden.

Inhaltsverzeichnis

Voraussetzungen

Wenn Sie dieser Anleitung folgen möchten, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Ein Windows 7+- oder Server 2008 R2-Computer, der als Clientcomputer dient. Dieses Tutorial wird Windows 10 verwenden.
  • Eine Windows 7+- oder Server 2008 R2+-Maschine, die als Servermaschine dient. In diesem Lernprogramm wird Windows Server 2019 verwendet.
  • Zugriff auf ein lokales Administratorkonto oder ein Konto mit lokalen Administratorrechten auf Client- und Servercomputern.
  • Eine Active Directory Certificate Services (ADCS) Public Key Infrastructure (PKI) eingerichtet. Es wäre hilfreich, wenn Sie ADCS für Produktionsimplementierungen implementieren würden, dies ist jedoch für dieses Lernprogramm und diese Tests optional. In diesem Lernprogramm wird davon ausgegangen, dass die PKI als Unternehmens- oder eigenständige Zertifizierungsstelle eingerichtet ist.

Warum WinRM über SSL verwenden?

PSRemoting verwendet standardmäßig WinRM und ermöglicht die Remote-Verwaltung von Clientcomputern. Sobald PSRemoting eine Sitzung über WinRM eingerichtet hat, verschlüsselt es die gesamte Kommunikation vom Client zum Server. Außerdem ist das Setup-Verfahren zur Implementierung von PSRemoting ohne HTTPS ziemlich einfach.

Wenn PSRemoting die Sitzungskommunikation bereits verschlüsselt, warum sollten Sie sich dann die Mühe machen, etwas wie ADCS einzurichten und Zertifikate zu verwalten, wenn es bereits verschlüsselt ist?

Da Anmeldeinformationen während des Authentifizierungsprozesses je nach verwendetem Authentifizierungstyp in unsicheren Formaten gesendet werden können.

Eine der einfachsten Möglichkeiten, PSRemoting sicherer zu machen, ist die Verwendung von WinRM über HTTPS anstelle von HTTP. HTTPS umschließt Ihren gesamten Verbindungsstrom, einschließlich der Authentifizierung, innerhalb der Verschlüsselungsschicht, die WinRM bereits verwendet. HTTPS bietet gleichzeitig auch eine Möglichkeit, zu überprüfen, ob der Server, mit dem Sie eine Verbindung herstellen, Ihrer Meinung nach das ist.

Konfigurieren von WinRM mit einem selbstsignierten Zertifikat

Lassen Sie uns nun in die Demonstrationen einsteigen. Für den ersten Trick lernen Sie, wie Sie die PSRemoting-Kommunikation mit WinRM über SSL über ein selbstsigniertes Zertifikat verschlüsseln.

Die Verwendung eines selbstsignierten Zertifikats ist eine großartige Möglichkeit, eine Testumgebung einzurichten, ohne sich um eine PKI wie ADCS kümmern zu müssen. Wenn Sie ein selbstsigniertes Zertifikat verwenden, generieren Sie ein Zertifikat, das der Server selbst signiert, was im Grunde genommen für sich selbst bürgt.

Zertifikate sind in der Regel für zwei Aufgaben vorhanden: Authentifizieren einer Verbindung und Verschlüsseln. Die Verwendung eines selbstsignierten Zertifikats implementiert nur letzteres. Um die Identität eines Servers zu überprüfen, müssen Sie immer von der PKI bereitgestellte Zertifikate verwenden. PKI-bereitgestellte Zertifikate bieten eine einzige Vertrauensquelle, anstatt jedem selbstsignierten Zertifikat einzeln manuell vertrauen zu müssen.

Die Konfiguration von WinRM über SSL mit einem selbstsignierten Zertifikat erfordert vier übergeordnete Schritte:

  1. Erstellen des selbstsignierten Zertifikats auf dem Zielcomputer.
  2. Konfigurieren des WinRM-Webservers (Listener) des Servers für die Verwendung des selbstsignierten Zertifikats für die Authentifizierung.
  3. Öffnen der entsprechenden Ports in der Windows-Firewall des Zielcomputers.
  4. Ausführen eines Befehls zum Initiieren einer Remoteverbindung auf dem Client mithilfe eines PowerShell-Cmdlets wie Enter-PSSession.

Lassen Sie uns nun jeden Schritt durchgehen.

Erstellen eines selbstsignierten Zertifikats

Der erste Schritt besteht darin, ein selbstsigniertes Zertifikat auf dem Server zu generieren. Bei der Verbindung verwendet PSRemoting dieses Zertifikat, um die gesamte Kommunikation zu verschlüsseln.

Führen Sie auf ServerB mit einer als Administrator geöffneten Windows PowerShell-Konsole das Cmdlet New-SelfSignedCertificate wie unten gezeigt aus. Das Ausführen des folgenden Befehls generiert ein Zertifikat für ServerB.domain.com im persönlichen Zertifikatspeicher des lokalen Computers.

New-SelfSignedCertificate -Subject 'CN=ServerB.domain.com' -TextExtension '2.5.29.37={text}1.3.6.1.5.5.7.3.1'
 Erstellen eines selbstsignierten Zertifikats.
Erstellen eines selbstsignierten Zertifikats.

Der Parameter Subject sollte der vollqualifizierte Domänenname des Servers sein. WinRM verwendet den Betreff, um die Identität des Servers zu überprüfen.

Auch wenn sich der Server in einer Arbeitsgruppe befindet, geben Sie immer einen Domänennamen an, z.B., domain.com oder Labor.lokal. Wenn Sie eine Verbindung zum Zielcomputer herstellen, muss der DNS-Name, mit dem Sie eine Verbindung herstellen, genau mit diesem Betreffnamen übereinstimmen, da sonst die Verbindung fehlschlägt.

Mit TextExtension können Sie die Schlüsselverwendung des Zertifikats definieren (2.5.29.37), die definiert, wofür das Zertifikat verwendet werden darf. Definieren Sie die Schlüsselverwendung für die Serverauthentifizierung ({text}1.3.6.1.5.5.7.3.1), um sicherzustellen, dass das Zertifikat nur zur Authentifizierung der Identität eines Servers verwendet werden kann.

Nachdem New-SelfSignedCertificates ausgeführt wurde, wird der Fingerabdruck des generierten Zertifikats zurückgegeben. Speichern Sie dies, da Sie es für den nächsten Befehl benötigen.

Konfigurieren des WinRM-Listeners

Nachdem Sie das selbstsignierte Zertifikat auf dem Server erstellt haben, konfigurieren Sie den WinRM-Listener so, dass er dieses Zertifikat für die Authentifizierung verwendet. Verwenden Sie dazu den Befehl winrm create wie unten gezeigt.

Der Address=* im folgenden Befehl informiert den Listener, jede auf dem Server konfigurierte IP-Adresse abzuhören. Wenn der Server mehrere IP-Adressen konfiguriert hat, können Sie hier eine bestimmte IP-Adresse definieren.

Achten Sie darauf, den Platzhalter <cert thumbprint here> durch den im letzten Schritt zurückgegebenen Fingerabdruck zu ersetzen.

winrm create winrm/config/Listener?Address=*+Transport=HTTPS '@{Hostname="ServerB.domain.com"; CertificateThumbprint="<cert thumbprint here>"}'
 Erstellen eines WinRM-Listeners mit selbstsigniertem Zertifikat.
WinRM Listener mit selbstsigniertem Zertifikat erstellen.

Öffnen des WinRM SSL-Firewall-Ports

Wenn Sie die Windows-Firewall verwenden, müssen Sie als nächstes zulassen, dass HTTPS-Datenverkehr über den Standard-HTTPS-Port 5986 zum Server gelangt.

Öffnen Sie den Firewall-Port für WinRM über HTTPS mithilfe von PowerShell, indem Sie den folgenden Befehl ausführen.

$FirewallParam = @{ DisplayName = 'Windows Remote Management (HTTPS-In)' Direction = 'Inbound' LocalPort = 5986 Protocol = 'TCP' Action = 'Allow' Program = 'System'}New-NetFirewallRule @FirewallParam

Verbindung zum Server über SSL herstellen

Sie haben den Windows-Remoteserver jetzt so konfiguriert, dass WinRM-Verbindungen über SSL akzeptiert werden. Kehren Sie zu diesem Zeitpunkt zum Client zurück und initiieren Sie alle PSRemoting-Befehle, die Sie testen möchten. Sie können beispielsweise das Cmdlet Enter-PSSession oder Invoke-Command ausprobieren. Erst jetzt verbinden Sie sich ein bisschen anders als mit der Standard-HTTP-Verbindung.

Für die Verbindung über HTTPS ist in der Regel ein einzelner Parameter UseSSL erforderlich. Dieser Parameter weist den Befehl an, wie standardmäßig nach einem HTTPS-WinRM-Listener im Vergleich zu einem HTTP-Listener zu suchen. Der Parameter UseSSL ist für weitere PSRemoting-Befehle verfügbar.

Führen Sie zum Testen Enter-PSSession aus und geben Sie den FQDN des Servers an, der durch den Betreff des selbstsignierten Zertifikats definiert ist, ein PSCredential-Objekt, um den Benutzernamen und das Kennwort zu definieren, und schließlich den UseSSL Switch-Parameter.

Enter-PSSession -ComputerName ServerB.domain.com -Credential (Get-Credential) -UseSSL

Wenn Sie den obigen Befehl ausführen, erhalten Sie eine Fehlermeldung, da Sie den WinRM-Listener auf dem Server für die Verwendung eines selbstsignierten Zertifikats konfiguriert haben. Wenn der PSRemoting-Client versucht, sich beim Server zu authentifizieren, versucht er, das Zertifikat zu validieren, kann dies jedoch nicht. Ein selbstsigniertes Zertifikat hat keine Vertrauenskette, der der Befehl folgen kann, und schlägt fehl.

 Fehlgeschlagene Vertrauenswürdigkeitsprüfung der Zertifizierungsstelle mit selbstsigniertem Zertifikat.
Fehlgeschlagene Vertrauenswürdigkeitsprüfung der Zertifizierungsstelle mit selbstsigniertem Zertifikat.

Um mit einem selbstsignierten Zertifikat eine Verbindung zum Server herzustellen, müssen Sie die Zertifikatvertrauensprüfung überschreiben. Sie können dies tun, indem Sie eine PSSessionOption mit dem Namen SkipCACheck mit dem Cmdlet New-PSSessionOption erstellen und wie unten gezeigt an den Befehl übergeben.

$PSSessionOption = New-PSSessionOption -SkipCACheckEnter-PSSession -ComputerName ServerB -Credential (Get-Credential) -SessionOption $PSSessionOption -UseSSL

Sie können viele verschiedene PSSessionOption-Objekte definieren, um Optionen für Ihre Remoteverbindung hinzuzufügen, die nicht direkt im Cmdlet Enter-PSSession enthalten sind.

Versuchen Sie erneut, eine Verbindung herzustellen, und PowerShell sollte Sie nun zur Eingabe von Anmeldeinformationen auffordern. Nach der Bereitstellung sollten Sie sich nun mit WinRM über SSL mit dem Server verbinden!

Konfigurieren von WinRM mit einem von einer Zertifizierungsstelle signierten Zertifikat

Wenn Sie PSRemoting mit WinRM in der Produktion verwenden und so sicher wie möglich bleiben möchten, müssen Sie sich auf WinRM über SSL mit einem von einer Zertifizierungsstelle signierten Zertifikat konzentrieren.

CA-signierte Zertifikate pflegen eine Vertrauenskette und sind sicherer als einfache selbstsignierte Zertifikate, da sie die Identität eines Zertifikatsausstellers validieren.

Wenn Sie sich in einer Active Directory-Umgebung befinden, können Sie eine Zertifizierungsstelle am häufigsten mit ADCS einrichten. Mit ADCS können Sie Zertifikate auf Geräten bereitstellen und WinRM für die Verwendung dieser Zertifikate konfigurieren.

In diesem Lernprogramm wird davon ausgegangen, dass Sie bereits ADCS eingerichtet haben und in Ihrer Umgebung arbeiten.

Für eine schnelle Einrichtung können Sie der Dokumentation von Microsoft folgen, aber für eine Produktionsbereitstellung sollten Sie die Konfiguration gründlich recherchieren, da eine Zertifizierungsstelle im Mittelpunkt der Verschlüsselungsbemühungen einer Organisation steht.

Erstellen der Zertifikatsanforderung

Der erste Schritt bei der Verwendung eines von einer Zertifizierungsstelle ausgestellten Zertifikats ist das Erstellen des Zertifikats. Um das Zertifikat zu erstellen, müssen Sie zunächst eine Zertifikatsanforderung mithilfe einer Zertifikatsignieranforderung (Certificate Signing Request, CSR) ausstellen. Nach der Generierung kann diese CSR an die Zertifizierungsstelle gesendet werden, um das Zertifikat auszustellen.

Die Schritte dieses Abschnitts funktionieren bei ADCS-Bereitstellungen, wenn es sich um eine Unternehmenszertifizierungsstelle oder eine eigenständige Zertifizierungsstelle handelt. Wenn Sie eine AD-integrierte Unternehmenszertifizierungsstelle verwenden, können Sie die Registrierung von Zertifikaten beschleunigen, ohne die Schritte in diesem Abschnitt mithilfe der automatischen Zertifikatregistrierung oder Zertifikatvorlagen ausführen zu müssen.

Erstellen Sie auf dem Server (ServerB in diesem Lernprogramm) die CSR:

  1. Führen Sie certlm aus.msc, um den Windows-Zertifikatsmanager zu öffnen.

2. Klicken Sie mit der rechten Maustaste auf den persönlichen Speicher und wählen Sie Alle Aufgaben —> Erweiterte Vorgänge —> Benutzerdefinierte Anforderung erstellen.

3. Belassen Sie für dieses Lernprogramm alle Felder als Standard, bis Sie zur Zertifikatinformationsseite unten gelangen. Wenn Sie hier ankommen, klicken Sie auf die Dropdown-Liste Details und wählen Sie Eigenschaften.

 Erstellen einer benutzerdefinierten Zertifikatsanforderung.
Erstellen einer benutzerdefinierten Zertifikatsanforderung.

4. Klicken Sie auf die Registerkarte Betreff und ändern Sie den Typ in Allgemeiner Name.

5. Geben Sie nun den vollqualifizierten Domänennamen des Servers ein, wenn er einer Domäne beigetreten ist, oder nur den Hostnamen, wenn dies nicht der Fall ist, und klicken Sie auf Hinzufügen.

 Angabe des Betreffs für die Zertifikatsanforderung.
Betreff für Zertifikatsanforderung angeben.

Beachten Sie, dass Sie für die Verwendung mit einem WinRM-SSL-Listener den allgemeinen Namen verwenden müssen. Die anderen Optionen in der Liste können enthalten sein, sind jedoch für diese Bereitstellung nicht erforderlich.

6. Klicken Sie auf die Registerkarte Erweiterung.

7. Wenn Sie keine zertifikatbasierte Authentifizierung verwenden, die später behandelt wird, Erweitern Sie den Header Extended Key usage und fügen Sie die Serverauthentifizierung hinzu. Dieser Schlüsselverwendungstyp teilt Windows mit, dass das Zertifikat zur Authentifizierung eines Servers verwendet werden soll. Weitere Optionen sind Clientauthentifizierung, Codesignierung und Dokumentverschlüsselung.

8. Wenn Sie die zertifikatbasierte Authentifizierung einrichten möchten, stellen Sie sicher, dass Sie die Clientauthentifizierung auswählen, wie unten gezeigt.

 Anfordern eines Clientauthentifizierungszertifikats.
Anfordern eines Clientauthentifizierungszertifikats.

9. Klicken Sie anschließend auf die Registerkarte Privater Schlüssel und beachten Sie die Schlüsseloptionen. Ändern Sie die Standardschlüsselgröße von 1024 auf mindestens 2048, um die Sicherheit des Schlüsselpaars zu erhöhen.

In Windows sind auch stärkere Kryptografieanbieter verfügbar, es kann jedoch zu Inkompatibilitäten mit älterer Software kommen.

10. Schließen Sie das Fenster Zertifikatseigenschaften, und speichern Sie Ihre Einstellungen, indem Sie auf OK klicken, und klicken Sie auf Weiter, um mit den Eingabeaufforderungen fortzufahren.

11. Geben Sie nun einen Pfad zur Ausgabe der Zertifikatsanforderung an, über den Sie sie später abrufen können, und klicken Sie auf Fertig stellen.

Nach Abschluss sollten Sie über eine Zertifikatsanforderungsdatei verfügen.

Anfordern eines Zertifikats

Sobald Sie die Anforderung erstellt haben, müssen Sie diese Anforderung an Ihre Zertifizierungsstelle senden, die das Zertifikat generiert. Um das zu tun:

  1. Navigieren Sie zu Ihrem ADCS-Server unter http://<server Name FQDN>/certsrv/certrqxt.ASP.
 Webseite zur Einreichung von Zertifikatsanfragen.
Webseite zur Einreichung von Zertifikatsanfragen.

2. Öffnen Sie die zuvor mit Notepad erstellte Zertifikatsanforderungsdatei und kopieren Sie den Text aus der Zertifikatsanforderungsdatei in das Anforderungsfeld. Für zusätzliche Attribute für dieses Zertifikat ist nichts erforderlich.

3. Klicken Sie auf Senden. Dadurch wird Ihre Anfrage an die CA gesendet. Es sollte Ihnen dann die Anforderungs-ID zeigen, die später benötigt wird. Speichern Sie diese! Du wirst es später brauchen.

4. Stellen Sie nun mithilfe des Windows-Zertifikatsmanagers auf Ihrem lokalen Computer oder über RDP eine Verbindung zum Zertifizierungsstellenserver her, der Teil Ihrer ADCS-Umgebung ist, indem Sie certsrv ausführen.msc.

5. Klicken Sie auf Ausstehende Anfragen.

 Ausstellung eines Zertifikats aus ausstehender Anforderung.
Zertifikat aus ausstehender Anforderung ausgeben.

6. Klicken Sie mit der rechten Maustaste auf die ausstehende Anforderung, klicken Sie auf Alle Aufgaben und dann auf Problem. Dadurch wird die Anforderung, die Sie gerade gesendet haben, basierend auf der Anforderungs-ID aus dem vorherigen Schritt genehmigt.

Registrieren des Zertifikats

Nachdem Sie nun ein Zertifikat für die Zertifizierungsstelle ausgestellt haben, ist es an der Zeit, das Zertifikat auf dem Server zu registrieren, auf dem Sie WinRM konfigurieren. Um das zu tun:

  1. Navigieren Sie auf dem Server, auf dem Sie WinRM über SSL einrichten, zu http://<server name FQDN>/certckpn.ASP. Sie sollten eine einzelne ausstehende Zertifikatsanforderung sehen.
 Status der ausstehenden Zertifikatsanforderung anzeigen.
Status der ausstehenden Zertifikatsanforderung anzeigen.

Sie können das öffentliche Zertifikat bei Bedarf von einem anderen Computer abrufen, aber das Starten von dem Server, den Sie für WinRM über HTTPS einrichten, vereinfacht den Vorgang.

2. Wählen Sie die gesendete Anforderung aus der Liste aus und laden Sie die Zertifikatskette herunter. Sie sollten die gesamte Zertifikatskette herunterladen, wenn der Server, auf dem Sie WinRM über HTTPS konfigurieren, Ihre Zertifizierungsstelle als Stammserver hat.

 Zertifikatskette herunterladen.
Zertifikatskette wird heruntergeladen.

3. Öffnen Sie die Zertifikatskettendatei. Sie sollten ein Zertifikat für Ihren Server und alle Zertifikate der Zertifizierungsstelle höher in der Kette sehen. Unter win2.Lab.int ist das angeforderte Zertifikat, und WIN2-CA ist das Zertifikat für die Zertifizierungsstelle, die das Zertifikat für win2.lab.int.

 Anzeigen von Zertifikaten innerhalb der Zertifikatskette.
Anzeigen von Zertifikaten innerhalb der Zertifikatskette.

4. Doppelklicken Sie auf eines der Zertifikate und klicken Sie im folgenden Feld auf die Schaltfläche Zertifikat installieren. Da dieses Zertifikat vom Server und nicht von einem bestimmten Benutzer verwendet wird, ändern Sie die Option auf Lokaler Computer.

 Importieren des Zertifikats in den Zertifikatspeicher des lokalen Computers.
Importieren des Zertifikats in den Zertifikatspeicher des lokalen Computers.

5. Fahren Sie mit der Eingabeaufforderung fort und lassen Sie alles als Standard. Die Standardeinstellungen sollten das Zertifikat im vertrauenswürdigen Stammzertifizierungsspeicher ablegen.

6. Wiederholen Sie nun die Schritte 3-5 für jedes der anderen Zertifikate in der Liste. Wenn Sie über mehr als ein Zertifikat verfügen, stellen Sie sicher, dass alle anderen Zertifikate im Zwischenspeicher der Zertifizierungsstellen abgelegt sind.

Erstellen und Einrichten des WinRM-HTTPS-Listeners

Nachdem alle Zertifikate installiert sind, müssen Sie WinRM auf Ihrem Server so konfigurieren, dass dieses Zertifikat für den Listener verwendet wird.

Bei geöffneter PowerShell auf dem WinRM-Server:

  1. Führen Sie den folgenden Befehl aus, um den WinRM-Listener automatisch einzurichten. Der Befehl winrm durchsucht dazu den Zertifikatspeicher des lokalen Computers nach einem Zertifikat, das den Anforderungen für WinRM entspricht.

winrm quickconfig -transport:https

2. Die Windows-Firewall blockiert standardmäßig den WinRM-HTTPS-Port 5986. Führen Sie den folgenden PowerShell-Befehl aus, um sicherzustellen, dass die Firewall den eingehenden Port 5986 zulässt:

$FirewallParam = @{ DisplayName = 'Windows Remote Management (HTTPS-In)' Direction = 'Inbound' LocalPort = 5986 Protocol = 'TCP' Action = 'Allow' Program = 'System' } New-NetFirewallRule @FirewallParam

Testen der WinRM-SSL-Verbindung

Zu diesem Zeitpunkt können Sie eine Verbindung herstellen. Stellen Sie mit Ihren bevorzugten PSRemoting-Cmdlets wie Invoke-Command oder Enter-PSSession eine Verbindung zum Server her und verwenden Sie den Parameter UseSSL.

Enter-PSSession -ComputerName ServerB.domain.com -UseSSL -Credential (Get-Credential)

Stellen Sie immer sicher, dass der Wert für den Parameter ComputerName genau mit dem allgemeinen Namen übereinstimmt, der bei der Zertifikatserstellung angegeben wurde. Wenn Sie versuchen, eine Verbindung zu einem anderen Hostnamen oder der IP-Adresse des Hosts herzustellen, wird ein Zertifikatfehler angezeigt, der einen Verbindungsfehler verursacht.

Zertifikatbasierte Authentifizierung einrichten

Sie sollten bereits einen WinRM-Listener für die Verwendung von HTTPS eingerichtet haben. In diesem Fall können Sie auch ein Benutzerauthentifizierungszertifikat verwenden, um sich als lokaler Benutzer auf dem Remoteserver zu authentifizieren. Die Verwendung eines Benutzerzertifikats ist eines der sichersten, die Einrichtung dauert jedoch eine Weile. Sie werden feststellen, dass es sich auch um eine Menge wiederholter Arbeit handelt, da jedes Zertifikat für den einzelnen Client-Computer eindeutig ist.

Zertifikatsbasierte Authentifizierung funktioniert nur mit lokalen Benutzerkonten und nicht mit Domänenbenutzern.

Angenommen, Sie haben ein Zertifikat für die Clientauthentifizierung angefordert, wie im Abschnitt Zertifikatsanforderung erstellen beschrieben, lesen Sie weiter:

Zertifikatsauthentifizierung aktivieren und Benutzer auf dem Server zuordnen

  1. Führen Sie auf dem Server den Befehl Set-Item aus, um die zertifikatsbasierte Authentifizierung zuzulassen.
Set-Item WSMan:\localhost\Service\Auth\Certificate -Value $true

2. Führen Sie anschließend Get-ChildItem aus, um im Speicher vertrauenswürdige Stammzertifizierungsstellen nach dem Fingerabdruck der Zertifizierungsstelle zu suchen, die das Clientauthentifizierungszertifikat ausgestellt hat. Filtern Sie dazu Zertifikate nach dem Betreff, der den Namen Ihrer Zertifizierungsstelle enthält.

Get-ChildItem Cert:\LocalMachine\Root | Where-Object {$_.Subject -like 'CA-Name'}

3. Führen Sie den folgenden Befehl aus, wobei SubjectName der Betreff des Benutzerzertifikats ist, das Sie beim Erstellen des Zertifikats angegeben haben

Die CAThumbprint ist der Fingerabdruck der Zertifizierungsstelle, der mit dem vorherigen Befehl erfasst wurde.

New-Item WSMan:\localhost\ClientCertificate -Subject SubjectName -URI * -Issuer CAThumbprint -Credential (Get-Credential)

Testen der zertifikatsbasierten Authentifizierung

Nachdem die Zuordnung Zertifikat zu Benutzer eingerichtet wurde, verwenden Sie das Zertifikat auf dem Clientcomputer, um sich ohne Angabe von Anmeldeinformationen zu authentifizieren.

Rufen Sie auf dem Client in PowerShell den Fingerabdruck des Clientzertifikats ab, indem Sie im persönlichen Zertifikatspeicher suchen.

Get-ChildItem Cert:\CurrentUser\My

Geben Sie nun den Fingerabdruck im Parameter CertificateThumbprint für einen PSRemoting Befehl wie unten an.

Enter-PSSession -ComputerName ServerName -CertificateThumbprint <Thumbprint>

Beachten Sie, dass, da die zertifikatbasierte Authentifizierung nur mit einem HTTPS-Listener verwendet werden kann, -UseSSL impliziert ist, im Gegensatz zu anderen Authentifizierungsmethoden, bei denen Sie angeben müssen, dass SSL verwendet werden soll.

Nachdem Sie nun gelernt haben, wie Sie WinRM über SSL einrichten, erfahren Sie mehr über PSRemoting in unserem PowerShell Remoting: The Ultimate Guide Post!

Möchten Sie mehr über PowerShell im Allgemeinen erfahren, einschließlich viel über PSRemoting? Schauen Sie sich PowerShell für Sysadmins an, das Buch!

Leave a Reply