在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>
答案 0 :(得分:2)
为后代回答我自己的问题。
IISAdministration的New-IISSiteBinding cmdlet让我很困惑。
首先,这不是我的默认Windows 2016(从aws映像加载)的一部分,因此我必须首先执行Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
然后Install-Module -Name IISAdministration -Force
更新到IISAdministration 1.1 。您无法使用Update-Module,因为IIS Administration 1.0未与NuGet一起安装,它是Win 2016的一部分。
其次,此SslFlag
属性与SslFlags
的{{1}}无关。 Require Ssl
上的SslFlag
可以设置为New-IISSiteBinding
。在IIS管理器中,它相当于单击网站,然后单击右侧的“绑定”链接,然后单击“添加/编辑”,并选中“需要服务器名称指示”复选框。
IISAdministration cmdlet Get-IISConfigSection是需要的。以下代码在网站上设置None, Sni, CentralCertStore
(在IIS管理器中等效于单击网站,然后是SSL设置图标,“需要SSL”复选框):
Require Ssl
这些也可以用管道输送。此sslFlags的可能值为:None,Ssl,SslNegotiateCert,SslRequireCert,SslMapCert,Ssl128(请参阅Access Security access)
答案 1 :(得分:0)
对于那些需要客户端证书的用户,适当的设置是“ Ssl,SslNegotiateCert,SslRequireCert”
<system.webServer>
<security>
<access sslFlags="Ssl, SslNegotiateCert, SslRequireCert" />
</security>
</system.webServer>