作爲我們自動構建過程的一部分,我們使用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