Verständnis und Behebung eines WinRM-Zertifikatsfehlers
Fehlerbeschreibung
This error occurs when you attempt to establish a remote connection via Windows Remote Management (WinRM) using HTTPS, but the SSL/TLS certificate used to secure the connection fails validation. The WinRM client is highly strict about identity verification.
Der Fehler zeigt einen spezifischen Fehler der Zertifikatsarchitektur an:
- Missing DNS Name: The certificate lacks a valid routing identifier (like the hostname or Fully Qualified Domain Name) inside the Subject Name oder... Subject Alternative Name (SAN) Die Felder.
- Presence of a UPN: Die Bescheinigung enthält fälschlicherweise User Principal Name (UPN) (z. B.
user@domain.com), was anzeigt, dass es für die Benutzer-Authentifizierung und nicht für die Computer-/Host-Authentifizierung ausgestellt wurde.
WinRM erfordert ein spezielles Maschinenzertifikat, um zu überprüfen, ob der Remote-Computer genau der ist, für den er sich ausgibt, bevor er sensible Anmeldeinformationen übermittelt.
Schritt-für-Schritt-Lösung: Erstellen und Binden eines gültigen Zertifikats
Um dieses Problem zu beheben, müssen Sie ein kompatibles Computerzertifikat generieren und an den WinRM HTTPS-Luschter binden.
Schritt 1: Öffnen Sie PowerShell als Administrator
- Drücken Sie die... Windows Key auf deiner Tastatur.
- Typ PowerShell.
- Mit der rechten Maustaste. Windows PowerShell von den Ergebnissen.
- Wählen Sie. Run as administrator.
Schritt 2: Erstellen Sie ein konformes, selbst signiertes Zertifikat
Führen Sie den folgenden Befehl aus, um ein Zertifikat zu erstellen, das explizit den voll qualifizierten Domänennamen (FQDN) des Computers im Feld Subject verwendet und sicherstellt, dass kein UPN angehängt ist.
New-SelfSignedCertificate -DnsName \(env:COMPUTERNAME -CertStoreLocation Cert:\LocalMachine\My -Subject\)env:COMPUTERNAME
Notieren Sie die... Thumbprint Sie werden es für die nächsten Schritte benötigen.
Schritt 3: Löschen des bestehenden WinRM HTTPS-Lusterns
Wenn Sie zuvor versucht haben, WinRM HTTPS zu konfigurieren, könnte ein ungültiger Zuhörer den Port blockieren.
Remove-Item -Path WSMan:\Localhost\Listener\* -Recurse -ErrorAction SilentlyContinue
Schritt 4: Erstellen Sie einen neuen WinRM HTTPS-Luschter mit dem gültigen Zertifikat
Ersetzen. YOUR_CERTIFICATE_THUMBPRINT mit der Zeichenfolge, die Sie aus Schritt 2 kopiert haben, dann den Befehl ausführen:
New-Item -Path WSMan:\LocalHost\Listener -Transport HTTPS -Address * -CertificateThumbprint "YOUR_CERTIFICATE_THUMBPRINT"
Schritt 5: Port 5986 in der Windows-Firewall öffnen
WinRM HTTPS-Verkehr kommuniziert über Port 5986. Stellen Sie sicher, dass Ihre Firewall diesen Verkehr erlaubt, indem Sie:
New-NetFirewallRule -DisplayName "Windows Remote Management (HTTPS-In)" -Name "WinRM_HTTPS" -Profile Any -LocalPort 5986 -Protocol TCP -Action Allow -Direction Inbound
Schritt 6: Überprüfen Sie die Einrichtung
Überprüfen Sie, ob der Hörer aktiv ist und mit den neuen Zertifikatsparametern korrekt konfiguriert ist:
winrm enumerate winrm/config/listener
Suchen Sie nach dem Eintrag, wo... Transport = HTTPS Sie können jetzt sicher versuchen, Ihre Fernverbindung vom Client-Rechner aus zu starten.
ERROR_WSMAN_CLIENT_CREDENTIALS_FOR_DEFAULT_AUTHENTICATION | ERROR_WSMAN_CLIENT_USERNAME_AND_PASSWORD_NEEDED | ERROR_WSMAN_CREATESHELL_NULL_ENVIRONMENT_VARIABLE_NAME | ERROR_WSMAN_SHELL_ALREADY_CLOSED | ERROR_WSMAN_CREATESHELL_NULL_STREAMIDEs kann einige Fehler geben.. Learn Microsoft