用于在Windows 2012上设置IIS的命令行

我正在尝试完成运行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”参数。 我希望这将有助于未来的人。

问候,

广告