Befehlszeile zum Einrichten von SNI auf IIS für Windows 2012

Befehlszeile zum Einrichten von SNI auf IIS für Windows 2012

Ich versuche, das automatisierte Build-Skript meines Webservers fertigzustellen, auf dem Windows 2012 läuft und der über zwei SSL-Websites mit jeweils einem eigenen digitalen Zertifikat verfügt.

Ich verwende SNI, was einwandfrei funktioniert, wenn ich es manuell einrichte. Wenn ich jedoch APPCMD verwende, um dieselbe Konfiguration einzurichten, kann ich nicht herausfinden, wie ich ein Zertifikat für die Sites in der Bindung auswählen kann.

Beim manuellen Ansatz gibt es eine Dropdown-Liste, aus der Sie das Zertifikat auswählen können. Ich suche nach dem Befehlszeilen-Äquivalent zum Auswählen eines Zertifikats aus dieser Liste.

Weiß jemand, wie man das macht?

Antwort1

Über appcmd weiß ich nichts, ich halte das für ein veraltetes Tool, dessen Verwendung ich nicht mehr empfehle.

In PowerShell geben Sie SNI mit dem Parameter SSlFlags an, 0 bedeutet kein SNI, 1 legt SNI fest.

New-WebBinding -Name site1.local -Port 443 -Protocol https -SslFlags 0
New-WebBinding -Name site2.local -Port 443 -Hostheader site2.local -Protocol https -SslFlags 1

Um ein vorhandenes Zertifikat zuzuweisen, holen Sie sich zuerst den Fingerabdruck des Zertifikats und eine GUID und verwenden Sie dann netsh

$thumb = (Get-ChildItem cert:\LocalMachine\MY | where-object { $_.FriendlyName -match "site2" } | Select-Object -First 1).Thumbprint
$guid = [guid]::NewGuid()
& netsh http add sslcert hostnameport=site2.local:443 certhash=$thumb appid=`{$guid`} certstorename=MY

für die Site ohne SNI-Nutzung:

$thumb = (Get-ChildItem cert:\LocalMachine\MY | where-object { $_.FriendlyName -match "site1" } | Select-Object -First 1).Thumbprint
$guid = [guid]::NewGuid()
& netsh http add sslcert ipport=0.0.0.0:443 certhash=$thumb appid=`{$guid`} certstorename=MY

Antwort2

Hier ist die Antwort, die ich auf meine eigene Frage gefunden habe …

Ich musste Netsh mit der folgenden Syntax verwenden: -

netsh http add sslcert hostnameport=www.shifts.org.uk:443 certstorename=MY certhash=<put your hash here> appid={<put your app ID here>}

Der Schlüsselteil, der mir zuvor fehlte, war der Parameter namens „hostnameport“ oben. Ich hoffe, dass dies in Zukunft jemandem hilft.

Grüße,

Werbung

verwandte Informationen