IIS 8: Verbesserte Zertifikatsverwaltung

Der zentrale IIS 8-Zertifikatsspeicher kann die Verwendung mehrerer Zertifikate auf mehreren Servern vereinfachen.

Jason Helmick

Es ist erfrischend, wenn es eine genial einfache Lösung für ein komplexes Problem gibt. Das ist genau wie der neue zentrale Zertifikatspeicher (CCS) in IIS 8 stapelt sich. Mit früheren Versionen von IIS, könnten Sie Installieren Sie Zertifikate in einer Webfarm, die mithilfe von Windows PowerShell -Remoting. Dies ist ein nützliches Verfahren, wenn Sie auf älteren Servern mit IIS arbeiten. Wenn Sie einer der glücklichen, die auf IIS 8 aktualisieren können, werden Sie bald sehen, wie das Arbeiten mit Zertifikaten ein Kinderspiel ist.

Dagegen Sie im store

Die CCS basiert auf ein wirklich einfaches Konzept. Speichern Sie alle Zertifikate in einer Windows-Dateiserver-Freigabe, dann haben Sie die Website-Bindungen, die diejenigen, die nicht lokal installierten Zertifikate verwenden. Nicht nur verringert dies das Chaos der Zertifikate auf mehreren Servern installieren, es reduziert die Verwaltungszeit und Mühe Auffinden von Zertifikaten, die in Kürze ablaufen.

Der erste Schritt ist eine Freigabe auf einem Dateiserver erstellen, die Ihr Zertifikat PFX-Dateien halten wird. Hierzu können Sie auf jede Datei-Server, unabhängig von der OS. Es scheint besser, es zu tun auf einem gruppierten Dateiserver einen single Point of Failure zu verhindern. Sie wollen nicht den Zugriff auf diese Zertifikate verlieren.

Arbeiten Sie in einer Webfarm, haben Sie wahrscheinlich bereits einen gruppierten Dateiserver — oder verteilten Dateisystem (Distributed File System, DFS) — für die freigegebene Konfiguration zur Verfügung. Dies ist ein großartiger Ort, um eine andere Freigabe für Ihre Zertifikate erstellen. Erstellen ein Benutzerkonto mit Leseberechtigungen für die Freigabe, und du bist fertig.

CCS arbeitet mit den Host-Namen der Websitebindung um ein Zertifikat im Speicher mit genau denselben Dateinamen plus die Erweiterung PFX zu suchen. Beispielsweise liegen zwei Web-Sites mit Host-Namen www.WebBikez.com und www.MyCompany.com, sollten die Zertifikate benannt werden:

Hinweis: Stellen Sie sicher, dass Wildcard Zertifikate (*.MyCompany.com) Verwendung ein Unterstrich das Wildcard-Zeichen (_.MyCompany.com.pfx) zu ersetzen.

Sie können Zertifikate zu dieser Freigabe jederzeit hinzufügen Sie Websites hinzufügen. Sie müssen nicht mehr die Zertifikate auf Ihrem Webserver zu installieren. Der nächste Schritt ist die Installation und Konfiguration von CCS auf den IIS-8-Webservern, die Zertifikate verwenden zu können.

CCS zu installieren

Die Installation ist einfach. Hierzu können Sie mit grafischen Verwaltungstools oder Windows PowerShell. Hier ist das Installieren von CCS auf einem lokalen Webserver. Der letzte Abschnitt beschreibt, wie diese Aufgaben auf entfernten Webservern, einschließlich Windows Server 2012 Core.

Sie müssen die zentrale SSL Zertifikat Unterstützungsfunktion auf Ihrem Webserver installieren, bevor Sie fortfahren. Sie können die grafische Server-Manager-Tools oder das Cmdlet Install-WindowsFeature in Windows PowerShellverwenden:

PS> Install-WindowsFeature Web-CertProvider

Wenn Sie das neue Feature erfolgreich installiert haben, erscheint ein neues Symbol unter Abschnitt Verwaltung des IIS-Manager (siehe Abbildung 1).

The CCS icon in the IIS Manager Management section.

Abbildung 1 die CCS-Symbol im Abschnitt IIS-Manager Management.

Klicken Sie auf das Symbol zum Öffnen eines Formulars um CCS zu konfigurieren (siehe Abbildung 2). Aktivieren Sie CCS zu, dann liefern Sie die Aktie UNC und des Benutzerkontos mit lesen Berechtigungen für die Freigabe.

You can graphically configure the central certificate store.

Abbildung 2 Sie können grafisch konfigurieren Zentrale Zertifikatspeicher.

Beachten Sie, dass Sie ein Kennwort für privaten Schlüssel angeben können, wenn Sie den .pfx mit einem exportiert am unteren Rand des Formulars. Normalerweise würde Sie die Zertifikate mit einem Passwort, exportieren, so dass er in dem vorherigen Beispiel eingetragen ist.

Mit diesen grafischen Tools ist einfach genug, wenn Sie benötigen zum Aktivieren und Konfigurieren von CCS auf einem lokalen Server. Wenn Sie den Prozess automatisieren möchten, können Sie auch Windows PowerShell. Beim Installieren von CCS auf diese Weise werden sechs neue Cmdlets hinzugefügt:

  • Klar-WebCentralCertProvider
  • Deaktivieren-WebCentralCertProvider
  • Aktivieren-WebCentralCertProvider
  • Get-WebCentralCertProvider
  • Satz-WebCentralCertProvider
  • Satz-WebCentralCertProviderCredential

Die Cmdlets sind ziemlich selbsterklärend und Hilfedateien. Hier ist ein Beispiel der Verwendung des Cmdlets Enable-WebCentralCertProvider aktivieren und Konfigurieren von CCS auf einem lokalen Webserver:

PS> Enable-WebCentralCertProvider -CertStoreLocation \\serverdc\certstore -UserName company\certuser -Password P@ssw0rd -PrivateKeyPassword P@ssw0rd

Erstellen von Website-Bindungen

Der letzte Schritt im Prozess ist erstellen, ändern oder Hinzufügen einer neuen Bindung zu Ihrer Web-Site, die die CCS verwendet (siehe Abbildung 3). Hinweis: Es gibt jetzt eine neue Option "Use zentrale Zertifikatsspeicher." auswählen

Binding your Web site to the central certificate store is the final step.

Abbildung 3 binden Ihre Web Site an dem zentralen Speicher ist der letzte Schritt.

Hier ist ein Beispiel für Windows PowerShell verwenden, um eine neue Website mit der richtigen SSL-Bindung zu erstellen. Der Trick ist der –SslFlags-Parameter mithilfe des Cmdlets New-WebSite. SSLFlags bestimmt, wo sich das Zertifikat, das Sie für die Bindung verwenden befindet. Für CCS, gewünschte Option zwei oder drei, je nachdem, ob Sie Server-Name-Angabe (SNI) verwenden. Hier sind die Optionen:

  • 0 – Regelmäßige Zertifikat im Windows-Zertifikatspeicher
  • 1 – SNI-Zertifikat
  • 2 – CCS
  • 3-SNI-Zertifikat im CCS

Hier ist einen neuen Anwendungspool und Web-Site mit einem SNI-Zertifikat in CCS zu erstellen:

PS C:\> New-WebAppPool -Name WebBikez_pool PS C:\> New-Website -Name WebBikez -HostHeader www.WebBikez.com -PhysicalPath c:\inetpub\wwwroot -ApplicationPool webbikez_Pool -Ssl -port 443 -SslFlags 3 -force

Hierzu benötigen Sie nur eine Bindung, die eine vorhandene Website hinzu:

PS C:\> New-WebBinding -Name "WebBikez" -Protocol https -Port 443 -HostHeader www.WebBikez.com –SslFlags 3

CCS auf entfernten Webservern installiert

Sie können alle diese Befehle mit Windows PowerShell -Remoting ausführen. Es ist einfach anzuschließen und das CCS-Feature zu remote-Servern mit Windows Server 2012 Core installieren.

Erstellen Sie eine remote-Sitzung mithilfe des Cmdlets New-PSSession:

PS C:\> $Sessions=New-PSSession -ComputerName server2,server3

Installieren Sie die CCS-Funktion auf remote-Computern:

PS C:\> Invoke-Command -Session $sessions {Install-WindowsFeature Web-CertProvider}

Hier wird es schwierig. Mithilfe des Cmdlets Enable-WebCentralCertProvider hat einen Parameter — CertStoreLocation —, akzeptiert eine Netzwerkfreigabe für den Speicherort des Zertifikats. Das Problem ist, dass das Cmdlet versucht, den freigegebenen Speicherort zu überprüfen, bevor sie die Informationen in die Registrierung geschrieben.

In Windows PowerShell -Remoting verursacht das ein Multi-Hop-Problem. Sie sind mit einem Remotecomputer verbunden, die zu einem Remotecomputer herzustellen versucht. Irgendwann wird das IIS-Team wahrscheinlich das Cmdlet beheben. Bis sie das tun, ist hier eine Möglichkeit um das Problem. Sie können nur die Einträge in der Registrierung manuell hinzufügen.

CCS zu aktivieren:

Invoke-Command -Session $sessions {Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\IIS\CentralCertProvider\ -Name Enabled -Value 1}

Um die Freigabe der Zertifikate festzulegen:

Invoke-Command -Session $sessions {Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\IIS\CentralCertProvider\ -Name CertStoreLocation -Value \\ServerDC\CertStore}

Sie können den Benutzernamen und das Passwort direkt in der Registrierung nicht festlegen, aber mithilfe des Cmdlets Set-WebCentralCertProvider kümmert sich der Rest:

Invoke-Command -Session $sessions {Set-WebCentralCertProvider -Password P@ssw0rd -UserName Company\certuser -PrivateKeyPassword P@ssw0rd}

An dieser Stelle Sie können Web-Bindungen zu Ihren Websites hinzufügen, für HTTPS Windows PowerShell -Remoting verwenden, und Sie sind fertig. Wenn Sie die Möglichkeit, IIS 8 versuchen nicht gehabt haben, wird vielleicht lernen, wie die CCS funktioniert einen gutes Geschäft-Grund lohnt sich einen Blick geben. Es ist nur eine der neuen Features in IIS-8, die Sie berücksichtigen sollten, voran.

Jason Helmick

Jason Helmick ist Direktor des Windows PowerShell -Technologien für die Schnittstelle technische Ausbildung, mit Sitz in Phoenix, Arizona Er ist ein Redner, Autor, Lehrer und unbeabsichtigte IIS-Administrator.

Verwandte Inhalte