如何在Windows 2016上使用Powershell IISAdministration模块为IIS网站设置“需要SSL”

时间:2017-12-20 15:21:56

标签: powershell iis windows-server-2016

在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>

2 个答案:

答案 0 :(得分:2)

为后代回答我自己的问题。

IISAdministration的New-IISSiteBinding cmdlet让我很困惑。

  1. 首先,这不是我的默认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的一部分。

  2. 其次,此SslFlag属性与SslFlags的{​​{1}}无关。 Require Ssl上的SslFlag可以设置为New-IISSiteBinding。在IIS管理器中,它相当于单击网站,然后单击右侧的“绑定”链接,然后单击“添加/编辑”,并选中“需要服务器名称指示”复选框。

  3. 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>
相关问题