SSL-Zertifikat für IIS und WSUS installieren auf Server Core

    Zertifikat-SymbolServer Core ist mittler­weile die von Micro­soft em­pfohlene Instal­lations­variante für Infra­struktur­dienste wie AD, File Services, WSUS oder Web-Server. Benötigt man für Letztere ein Zerti­fikat, dann kann man es dort nicht über die GUI-Tools direkt installieren. Diese An­leitung zeigt ein Core-taug­liches Ver­fahren.

    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 Zertifikats­anfor­derung stellen, beispiels­weise 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 Compa­tibility ä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.

    Zertifikate lassen sich über den IIS-Manager remote nicht anfordern.

    Ein gangbarer Weg besteht in dieser Situation darin, das Zertifikat über certmgr.msc auf einer Work­station anzu­fordern, dort zu instal­lieren 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 Kontext­menü unter Alle Aufgaben den Befehl Neues Zertifikat anfordern aus.

    Das Zertifikat soll im Namen des Computerkontos angefordert werden.

    Nach der Bestätigung der Active Directory-Registrierungs­richtlinie, 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 Zertifikats­registrierung benötigt. Klicken Sie hier, um die Einstellungen zu konfigurieren.

    Vorlage Webserver auswählen und die Eigenschaften des Zertifikats festlegen

    Falls man die Vorlage mangels Berechtigungen nicht verwenden kann, dann muss man über das Snapin Zertifikats­vorlagen die Eigenschaften des Templates Webserver öffnen und dort in den Sicherheits­einstel­lungen dem Konto des Computers, der das Zertifikat anfordert, die Rechte Lesen, Schreiben und Registrieren einräumen.

    Dem Computerkonto müssen in der Vorlagenverwaltung die nötigen Rechte erteilt werden.

    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.

    Um das Zertifikat auf anderen Maschinen importieren zu können, muss man den privaten Schlüssel exportierbar machen.

    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 Informations­austausch PKCS #12, um das Zertifikat als PFX zu abzuspeichern.

    Zertifikat als PFX exportieren

    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 Zusammen­fassung, 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

    PFX-Datei in PowerShell importieren

    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.

    Das Windows Admin Center erlaubt den Remote-Import von Zertifikaten

    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.

    Zertifikat im IIS-Manager remote an https binden

    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.

    Keine Kommentare