2010-04-13 122 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

相關問題