WinRM wird von Powershell genutzt, um Remoteverbindungen herzustellen. Das läuft normalerweise über HTTP und Port 5985. Die Daten werden laut Dokumentation trotzdem verschlüsselt übertragen. Trotzdem birg dieses Verfahren Sicherheitsrisiken, die man durch Verwendung von SSL ausschließen kann. Daher wird die Nutzung von SSL für manche Verfahren vorausgesetzt. WinRM über SSL läuft über den Port 5986. Hier eine kurze Anleitung, wie man das über die eigene AD Zertifizierungsstelle realisiert.

Voraussetzungen

  1. das Zertifikat muss auf dem Host hinterlegt sein
  2. der Zertifizierungsstelle muss vertrautwerden
  3. Verwendungsart muss die Serverauthentifizierung enthalten
  4. Feld CN des Zertifikats muss den Hostnamen enthalten

Zertifikat anfordern

MMC Snapin starten und MMC für Zertifikate laden. Lokaler Computer->Eigene Zertifikate->Zertifikate. Rechte Maustaste auf freien Bereich. Alle Aufgaben->Neues Zertifikat anfordern.

Zertifikat auswählen und für WinRM verfügbar machen

  • Adminshell starten
  • Zertifikate auflisten
  • Thumbprint zum gewünschten Zertifikat Kopieren
  • neuen WSMan Listener mit dem gewählten Zertifikat erstellen.
  • Firewall Ausnahme für HTTPS Port 5986 erstellen.
dir cert:LocalMachine\my\

$cert = dir cert:LocalMachine\my\ | where {$_.thumbprint -eq "DD9F7CFF16A9CDAB498F243436B6922906C6370A"}

New-Item -Path WSMan:\LocalHost\Listener -Transport HTTPS -Address * -CertificateThumbPrint $Cert.Thumbprint -Force

New-NetFirewallRule -DisplayName "Windows Remote Management (HTTPS-In)" -Name "Windows Remote Management (HTTPS-In)" -Profile Any -LocalPort 5986 -Protocol TCP

Testen

Nun von einem Client aus testen. Client muss der CA vertrauen.

$cred = get-credential
Enter-PSSession -ComputerName hostname.domain.com -Credential $cred

Referenzen

https://www.windowspro.de/script/powershell-remoting-ueber-https-einem-selbstsignierten-ssl-zertifikat

https://www.infrastrukturhelden.de/microsoft-infrastruktur/active-directory/windows-winrm-ueber-https/