【问题标题】:Creating IIS7 web application using PowerShell with Require SSL set to "Require"使用 PowerShell 创建 IIS7 Web 应用程序,并将 Require SSL 设置为“Require”
【发布时间】:2013-01-30 09:16:54
【问题描述】:

我正在使用 PowerShell 的 New-WebSite cmdlet 创建一个 IIS 网站,并在其中创建一个使用 New-WebApplication 的 Web 应用程序。

Web 应用程序的 SSL 设置需要设置为 需要 SSL;需要如下所示。

为了保持一致性,我想仅使用 PowerShell cmdlet 来执行此操作。

需要 SSL 设置很简单;您只需将-Ssl 参数添加到New-Website

然而,我们发现设置 Require 选项的唯一方法是使用Appcmd.exe

& $env:SystemRoot\System32\inetsrv\Appcmd.exe `
    set config "$WebSiteName/$VirtualDirName" `
    /section:access `
    /sslFlags:"SslRequireCert" `
    /commit:APPHOST

有 PowerShell 替代品吗?

【问题讨论】:

    标签: ssl iis-7 powershell-2.0 appcmd


    【解决方案1】:

    如果您收到错误“没有为路径 IIS:\SslBindings 处的对象定义配置”,则需要设置 PsPath 参数

    -PSPath IIS:\Sites

    【讨论】:

      【解决方案2】:

      我用了这个方法:

      Set-WebConfigurationProperty -PSPath "machine/webroot/apphost" `
           -location "$mySiteName" -filter "system.webserver/security/access" `
           -name "sslflags" -value "Ssl,SslNegotiateCert,SslRequireCert"
      

      【讨论】:

        【解决方案3】:

        我必须将 ssl 添加到值中:

        Set-WebConfiguration -Location "$WebSiteName/$WebApplicationName" -Filter 'system.webserver/security/access' -值“Ssl,SslRequireCert”

        【讨论】:

        • 其他选项什么也没做(包括新网站标志的 -Ssl)——这很好用(IIS 7.5,Windows Server 2008R2)。
        • 如果您想忽略或接受 SSL,-Value 是什么?
        【解决方案4】:

        找到解决方案,使用Set-WebConfiguration:

        Set-WebConfiguration -Location "$WebSiteName/$WebApplicationName" `
            -Filter 'system.webserver/security/access' `
            -Value "SslRequireCert"
        

        【讨论】:

        • 是否有人在运行上述命令时收到此错误:路径 IIS:\SslBindings 处的对象没有定义配置。
        • 我遇到了同样的错误。 arcain 的回答对我有用,但我不得不删除 的一部分