作为我们自动构建过程的一部分,我们使用powershell脚本废弃并重建了我们的IIS网站。Powershell IIS7管理单元将SSL证书分配给https绑定
一旦我创建了AppPool和网站完整的绑定信息,我想为https绑定设置SSL证书。我无法在任何可以证明这一点的地方找到具体的例子。
任何想法?
寻找一个仁慈的上帝的PowerShell ...
作为我们自动构建过程的一部分,我们使用powershell脚本废弃并重建了我们的IIS网站。Powershell IIS7管理单元将SSL证书分配给https绑定
一旦我创建了AppPool和网站完整的绑定信息,我想为https绑定设置SSL证书。我无法在任何可以证明这一点的地方找到具体的例子。
任何想法?
寻找一个仁慈的上帝的PowerShell ...
这里是如何做到这一点简单:
首先确定你要分配和获得它的指纹
例如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
希望这是帮助任何人
我已经在这里找到了一个如何分配证书的例子。
但是,它似乎并不很优雅不必硬编码证书指纹 ...所以如果有更好的方法中的任何一个人都知道,我会很高兴地听到。
可以使脚本更简单的是这样的:
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代替它。
您可以将之前的示例与在网站中创建的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
尼斯,这是一个有意义的答案,并做了它在盒子上说的。没有进攻的其他人,但这个答案是完整和简洁,我不必知道拇指印。 :-) – sebastiaan 2013-11-15 15:10:17
这个答案正确地指的是'本地计算机'下的'个人'证书存储,这是IIS正在使用的。其他答案指的是“受信任的根”存储。 – 2014-10-24 11:35:32
Didnt了解Get-ChildItem命令如何知道要附加哪个iis网站,因为我们没有提及任何地方。 – 2015-07-21 14:16:27
你能解决这个问题。我能够创建新的绑定,但无法关联SSL证书 – 2015-07-21 17:53:26