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
- das Zertifikat muss auf dem Host hinterlegt sein
- der Zertifizierungsstelle muss vertrautwerden
- Verwendungsart muss die Serverauthentifizierung enthalten
- 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