2010-04-13 14 views
11

Come parte della nostra procedura di compilazione automatica, stiamo cestinando e ricostruendo il nostro sito IIS con script PowerShell.Powershell IIS7 Snap in Assegna il certificato SSL al collegamento https

Dopo aver creato AppPool e il sito Web completo di informazioni di associazione, desidero impostare il certificato SSL per l'associazione https. Non riesco a trovare alcun esempio concreto, ovunque sia in grado di dimostrarlo.

Qualche idea?

ricerca di un dio benevolo PowerShell ...

+0

Sei riuscito a risolvere questo problema. Sono in grado di creare un nuovo binding ma non in grado di associare il certificato SSL –

risposta

8

Ecco come farlo semplicemente:

innanzitutto identificare thecertificate che si desidera assegnare e di ottenere è identificazione digitale

esempio Il certificato potrebbe essere in cert: \ LocalMachine \ Root

È possibile ottenere l'identificazione personale con il seguente:

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

< < < Ora si può assegnare il certificato a un indirizzo IP e la porta ci comme >> >

$IPAddress = 101.100.1.90 

$port = 443 

Push-Location IIS:\SslBindings 

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

Pop-Location 

Spero che questo è di aiuto a nessuno

2

è possibile rendere lo script più semplice in questo modo:

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

Usa 0.0.0.0 per indirizzare tutti ospitati IP (equivalente a "*" in Gestione IIS) o sostituirla con un IP specifico, se necessario.

19

È possibile unire esempi precedenti con la creazione di un'associazione https in un sito Web.

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

Nice, una risposta che ha senso e fa ciò che dice sulla scatola. Senza offesa per gli altri ragazzi, ma questa risposta è completa e concisa e non ho mai dovuto conoscere le impronte digitali. :-) – sebastiaan

+1

Questa risposta si riferisce correttamente alla memoria del certificato "Personale" in "Computer locale", che è ciò che IIS sta utilizzando. Altre risposte si riferiscono alla memoria 'Root attendibile' invece. –

+0

Non ha capito il comando Get-ChildItem come sa quale sito Web iis allegare perché non lo menzioniamo da nessuna parte. –