2010-04-13 33 views
11

Como parte de nuestro procedimiento de compilación automatizada estamos destruyendo y reconstruyendo nuestro sitio IIS con scripts de PowerShell.Powershell IIS7 Ajustar en Asignar certificado SSL a la vinculación https

Una vez que haya creado el AppPool y el sitio web completo con información vinculante, quiero establecer el certificado SSL para el enlace https. No puedo encontrar ningún ejemplo concreto en ningún lugar que lo demuestre.

¿Alguna idea?

Buscando un dios benevolente powershell ...

+0

Resolvió este problema. Puedo crear un nuevo enlace pero no puedo asociar el Certificado SSL –

Respuesta

8

Aquí es cómo hacerlo de manera simple:

En primer lugar identificar thecertificate que desea asignar y obtener su huella digital

por ejemplo, Su certificado podría estar en cert: \ LocalMachine \ Root

Puede obtener la huella digital con lo siguiente:

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

< < < Ahora se puede asignar el certificado a una dirección IP y ci comme puerto >> >

$IPAddress = 101.100.1.90 

$port = 443 

Push-Location IIS:\SslBindings 

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

Pop-Location 

Esperamos que este sea de ayuda a cualquiera

2

puede hacer que el script sencillo como esto:

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

Uso 0.0.0.0 para apuntar (equivalente a "*" en el Administrador de IIS) de todo IP instalado o reemplazarla con una dirección IP específica, si es necesario.

19

Puede unir ejemplos anteriores con la creación de un enlace https en un sitio 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

Bueno, una respuesta que tiene sentido y hace lo que dice en el recuadro. Sin ofender a los otros chicos, pero esta respuesta es completa y concisa, y nunca tengo que saber nada sobre las huellas dactilares. :-) – sebastiaan

+1

Esta respuesta se refiere correctamente al almacenamiento de certificados 'Personal' en 'Equipo local', que es lo que IIS está usando. Otras respuestas hacen referencia al almacenamiento de "raíz de confianza". –

+0

No entendí el comando Get-ChildItem cómo sabe cuál es el sitio web que adjuntar, porque no lo mencionamos en ninguna parte. –

Cuestiones relacionadas