2010-04-13 45 views
11

作为我们自动构建过程的一部分,我们使用powershell脚本废弃并重建了我们的IIS网站。Powershell IIS7管理单元将SSL证书分配给https绑定

一旦我创建了AppPool和网站完整的绑定信息,我想为https绑定设置SSL证书。我无法在任何可以证明这一点的地方找到具体的例子。

任何想法?

寻找一个仁慈的上帝的PowerShell ...

+0

你能解决这个问题。我能够创建新的绑定,但无法关联SSL证书 – 2015-07-21 17:53:26

回答

8

这里是如何做到这一点简单:

首先确定你要分配和获得它的指纹

例如thecertificate您的证书可能在证书:\ LOCALMACHINE \根

您可以获取与以下指纹:

$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

可以使脚本更简单的是这样的:

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代替它。

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

尼斯,这是一个有意义的答案,并做了它在盒子上说的。没有进攻的其他人,但这个答案是完整和简洁,我不必知道拇指印。 :-) – sebastiaan 2013-11-15 15:10:17

+1

这个答案正确地指的是'本地计算机'下的'个人'证书存储,这是IIS正在使用的。其他答案指的是“受信任的根”存储。 – 2014-10-24 11:35:32

+0

Didnt了解Get-ChildItem命令如何知道要附加哪个iis网站,因为我们没有提及任何地方。 – 2015-07-21 14:16:27

相关问题