Ssl
在 IIS 上為 Windows 2012 設置 SNI 的命令行
我正在嘗試完成我的網路伺服器的自動建構腳本,它執行 Windows 2012 並有兩個 SSL 網站,每個網站都有自己的數字證書。
我正在使用 SNI,當我手動設置它時它工作正常,但是當我使用 APPCMD 設置相同的配置時,我無法弄清楚如何為綁定中的站點選擇證書。
使用手動方法,您可以使用一個下拉列表來選擇證書。我正在尋找相當於從該列表中選擇證書的命令行。
有誰知道你是怎麼做到的?
這是我對自己的問題找到的答案…
我需要使用具有以下語法的 netsh:-
netsh http add sslcert hostnameport=www.shifts.org.uk:443 certstorename=MY certhash=<put your hash here> appid={<put your app ID here>}
我之前缺少的關鍵部分是上面稱為“hostnameport”的參數。我希望這對將來的某人有所幫助。
問候,
廣告
我不了解 appcmd,我認為這是一個我不建議再使用的遺留工具。
在 PowerShell 中,您使用 SSlFlags 參數指示 SNI,0 表示無 SNI,1 設置 SNI。
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
要分配現有證書,首先獲取證書的指紋和 GUID,然後使用 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
對於沒有使用 SNI 的站點:
$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