在Windows 2016上,尝试将新的IISAdministration模块用于Powershell(而不是WebAdministration),如何为特定网站设置Require Ssl
复选框?
在C:\Windows\System32\inetsrv\config\applicationHost.config
中找到system.webserver/security/access的引用,当使用IIS管理器,给定网站的SSL设置时,该复选框值的保存位置:
<location path="MySite">
<system.webServer>
<security>
<access sslFlags="Ssl" />
</security>
</system.webServer>
</location>
最佳答案
回答我关于后代的问题。
IISAdministration的New-IISSiteBinding cmdlet确实使我感到困惑。
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
然后再执行Install-Module -Name IISAdministration -Force
来更新到IISAdministration 1.1。您不能使用Update-Module,因为IISAdministration 1.0未随NuGet一起安装,它是Win 2016的一部分。SslFlag
属性与SslFlags
的Require Ssl
无关。可以将SslFlag
上的New-IISSiteBinding
设置为None, Sni, CentralCertStore
。在IIS管理器中,这等效于单击网站,然后单击右侧的“绑定(bind)”链接,然后单击“添加/编辑”以及“需要服务器名称指示”复选框。 IISAdministration cmdlet Get-IISConfigSection是必需的。以下代码在网站上设置
Require Ssl
(在IIS管理器中等效于单击网站,然后单击“SSL设置”图标,“需要SSL”复选框):Import-Module IISAdministration
$ConfigSection = Get-IISConfigSection -SectionPath "system.webServer/security/access" -Location "MyWebSite"
#to set:
Set-IISConfigAttributeValue -AttributeName sslFlags -AttributeValue Ssl -ConfigElement $ConfigSection
#to read:
Get-IISConfigAttributeValue -ConfigElement $ConfigSection -AttributeName sslFlags
这些也可以通过管道传输。此sslFlags的可能值为:无,Ssl,SslNegotiateCert,SslRequireCert,SslMapCert,Ssl128(请参阅Access Security access)