我正在尝试完成运行Windows 2012的Web服务器的自动构build脚本,并有两个SSL网站,每个网站都有自己的数字证书。
我正在使用SNI,当我手动设置它时工作正常,但是当我使用APPCMD设置相同的configuration时,我无法确定如何为绑定中的站点select证书。
使用手动方法有一个下拉列表,您用来select证书。 我正在寻找相当于从列表中select证书的命令行。
有谁知道你是怎么做到的?
我不知道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
这是我对自己的问题的答案
我需要使用以下语法的netsh: –
netsh http add sslcert hostnameport=www.shifts.org.uk:443 certstorename=MY certhash=<put your hash here> appid={<put your app ID here>}
我之前缺less的关键部分是上面的“hostnameport”参数。 我希望这将有助于未来的人。
问候,
广告