Tags: Zertifikate, WSUS, Web-Server
Server Core ist mittlerweile die von Microsoft empfohlene Installationsvariante für Infrastrukturdienste wie AD, File Services, WSUS oder Web-Server. Benötigt man für Letztere ein Zertifikat, dann kann man es dort nicht über die GUI-Tools direkt installieren. Diese Anleitung zeigt ein Core-taugliches Verfahren.
Möchte man die Verbindung zu den Internet Information Services absichern (oder zu WSUS, denen die IIS vorgeschaltet sind), dann würde man bei einem Server mit Desktop Experience im IIS-Manager oder dem MMC-Snapin für Zertifikate eine Zertifikatsanforderung stellen, beispielsweise an ein interne Active Directory CA.
Keine Remote-Zertifikatverwaltung im IIS-Manager
Die MMC-basierten Tools laufen aber nicht unter Server Core, dies soll sich erst mit Server 2019 und der Core App Compatibility ändern. Anstelle der lokalen Ausführung des IIS-Managers auf der Server-Konsole liegt es daher nahe, die Web-Dienste remote zu verwalten. Allerdings wird man schnell feststellen, dass dann das Icon für Serverzertifikate fehlt.
Ein gangbarer Weg besteht in dieser Situation darin, das Zertifikat über certmgr.msc auf einer Workstation anzufordern, dort zu installieren und anschließend zu exportieren, um es schließlich auf Server Core zu importieren.
Neues Zertifikat auf Workstation anfordern
Dazu startet man die MMC auf einer Workstation, fügt das Snapin Zertifikate hinzu und wählt im folgenden Dialog Computerkonto und danach Lokalen Computer. Anschließend wechselt man im Zertifikat-Store zu Eigene Zertifikate und führt dort aus dem Kontextmenü unter Alle Aufgaben den Befehl Neues Zertifikat anfordern aus.
Nach der Bestätigung der Active Directory-Registrierungsrichtlinie, die wir in unserem Beispiel verwenden, wählt man sich im nächsten Dialog des Assistenten für die Vorlage Webserver aus. Nun folgt man dort dem Link Es werden zusätzliche Informationen für diese Zertifikatsregistrierung benötigt. Klicken Sie hier, um die Einstellungen zu konfigurieren.
Falls man die Vorlage mangels Berechtigungen nicht verwenden kann, dann muss man über das Snapin Zertifikatsvorlagen die Eigenschaften des Templates Webserver öffnen und dort in den Sicherheitseinstellungen dem Konto des Computers, der das Zertifikat anfordert, die Rechte Lesen, Schreiben und Registrieren einräumen.
Antragsteller eingeben
Zurück bei der Anforderung des Zertifikats füllt man nun die Felder in der Registerkarte Antragsteller aus. Neben dem Common Name des Core-Servers sollte man unbedingt auch Alternative Namen angeben, weil Google Chrome seit der Version 58 das Zertifikat sonst als ungültig betrachtet.
Neben der Angabe eines Anzeigenamens für das Zertifikat unter dem Reiter Allgemein muss man in jedem Fall unter Privater Schlüssel => Schlüsseloptionen den privaten Schlüssel exportierbar machen. Nach Ausfüllen dieses Formulars kann man dann im Assistenten den Vorgang durch Klicken auf Registrieren abschließen.
Würde man die bisher beschriebenen Schritte auf einem Server mit Desktop ausführen, dann wäre die Aufgabe nun erledigt und das Zertifikat installiert. Da wir für Core aber den Umweg über eine Workstation genommen haben, folgt nun der Export und der Re-Import des Zertifikats auf dem Zielrechner.
Zertifikat als PFX exportieren
Das neue Zertifikat sollte nun im Speicher unter Eigene Zertifikate auftauchen. Aus seinem Kontextmenü führt man unter Alle Aufgaben den Befehl Exportieren aus. Er startet einen Wizard, der im zweiten Dialog wissen möchte, ob der private Schlüssel exportiert werden soll. Dies bestätigt man mit Ja und aktiviert im nächsten Schritt die Option Privater Informationsaustausch PKCS #12, um das Zertifikat als PFX zu abzuspeichern.
Nach der Vergabe eines Kennworts im nächsten Schritt wählt man den Namen und den Pfad für die Datei aus, in die das Zertifikat geschrieben werden soll. Danach folgt eine Zusammenfassung, bei der man den Vorgang abschließen kann.
PFX auf Server kopieren und importieren
Nun geht es darum, die .pfx-Datei auf Server Core zu übertragen. Hier bietet sich in PowerShell das Cmdlet Copy-Item an, das Dateien mit dem Parameter ToSession auf einen Remote-Host kopieren kann.
Sobald das exportierte Zertifikat auf dem Server vorhanden ist, kann man sich daran machen, es dort zu importieren. Diesem Zweck dient Import-PfxCertificate. Da wir für die .pfx-Datei ein Passwort vergeben haben, müssen wir dieses dem Cmdlets mitteilen. Dazu speichern wir es zuerst in einem Secure String:
$pw = ConvertTo-SecureString -String "MyPass" -Force -AsPlainText
Nun folgt der Import mit
Import-PfxCertificate -FilePath c:\wsus.pfx cert:\localMachine\my -Password $pw
Als Ziel dient hier wieder Eigene Zertifikate, das wir über cert:\localMachine\my ansprechen.
Als Alternative zum Kopieren der PFX-Datei auf den Host und den Import per PowerShell kann man für diese Aufgabe das Windows Admin Center verwenden. Das Modul Zertifikate bietet einen Import-Befehl, der eine PFX-Datei vom lokalen Rechner hochladen kann.
Dazu wechselt man im Zertifikatspeicher des Remote-Rechners zu Local Machine\My und führt anschließend den Befehl im Kopf der linken Navigation aus.
Zertifikat an https binden
Zum Abschluss kann man nun das Zertifikat remote im IIS-Manager an das https-Protokoll binden. Dazu wählt man die gewünschte Site aus und klickt dann im rechten Abschnitt auf Bindungen. Im darauf folgenden Dialog bearbeitet man einen eventuell vorhandenen Eintrag für https oder fügt einen neuen hinzu.
In beiden Fällen hat man dort die Möglichkeit, über das gleichnamige Pull-down ein SSL-Zertifikat auszuwählen. Hier sollte sich nun auch jenes befinden, das wir zuvor importiert haben.
Täglich Know-how für IT-Pros mit unserem Newsletter
Ähnliche Beiträge
Weitere Links