Powershell IIS7 Snap in将SSL证书分配给https绑定

时间:2010-04-13 11:08:34

标签: iis-7 powershell web ssl-certificate

作为我们自动构建过程的一部分,我们使用PowerShell脚本来破坏和重建我们的IIS站点。

一旦我创建了AppPool并且网站完成了绑定信息,我想为https绑定设置SSL证书。我无法在任何地方找到任何具体的例子。

有什么想法吗?

寻找一位仁慈的贝壳神...

4 个答案:

答案 0 :(得分:19)

您可以将先前的示例与在网站中创建https绑定合并。

import-module webadministration
$computerName = $Env:Computername
$domainName = $Env:UserDnsDomain
New-WebBinding -Name "MyWebSite" -IP "*" -Port 443 -Protocol https
Get-ChildItem cert:\LocalMachine\My | where { $_.Subject -match "CN\=$Computername\.$DomainName" } | select -First 1 | New-Item IIS:\SslBindings\0.0.0.0!443

答案 1 :(得分:8)

以下是如何做到这一点:

首先确定您要分配的证书并获取它的指纹

e.g。您的证书可能位于cert:\ LocalMachine \ Root

您可以使用以下内容获取指纹:

$thumb = (Get-ChildItem cert:\LocalMachine\Root | where-object { $_.Subject -like "YOUR STRING HERE*" } | Select-Object -First 1).Thumbprint

<<<现在可以将证书分配给IP地址和端口comme ci>>>

$IPAddress = 101.100.1.90

$port = 443

Push-Location IIS:\SslBindings

Get-Item cert:\LocalMachine\Root\$thumb | New-Item $IPAddress!$port

Pop-Location

希望这对任何人都有帮助

答案 2 :(得分:2)

您可以使脚本更简单:

Get-ChildItem cert:\LocalMachine\Root | where { $_.Subject -like "YOUR STRING HERE*" } | select -First 1 | New-Item IIS:\SslBindings\0.0.0.0!443

使用0.0.0.0定位所有托管IP(相当于IIS管理器中的“*”),或者在需要时将其替换为特定IP。

答案 3 :(得分:0)

我在这里找到了一个如何分配证书的例子。

http://learn.iis.net/page.aspx/491/powershell-snap-in-configuring-ssl-with-the-iis-powershell-snap-in/

但是,必须对证书指纹进行硬编码似乎并不优雅 ......所以如果有人知道更好的方法,我会很高兴听到。