Powershell IIS7 Snap in Assign SSL certificate to https binding

后端 未结 4 2002
余生分开走
余生分开走 2021-01-11 15:29

As part of our automated build procedure we are trashing and reconstructing our IIS site with powershell scripts.

Once i have created the AppPool and the website com

相关标签:
4条回答
  • 2021-01-11 15:30

    Here is how to do it simply:

    First identify thecertificate that you want to assign and obtain it's thumbprint

    e.g. Your certificate might be in cert:\LocalMachine\Root

    You can obtain the thumbprint with the following:

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

    <<< Now one can assign the certificate to an ip address and port 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
    

    Hope this is of help to anyone

    0 讨论(0)
  • 2021-01-11 15:37

    I've found an example here on how one can assign the certificate.

    http://learn.iis.net/page.aspx/491/powershell-snap-in-configuring-ssl-with-the-iis-powershell-snap-in/

    However, it doesn't seem very elegant having to hard code the certificate thumbprint ... so if any one knows of a better method, I'd be glad to hear.

    0 讨论(0)
  • 2021-01-11 15:44

    You can merge previous examples with creation of an https binding in a web site.

    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
    
    0 讨论(0)
  • 2021-01-11 15:49

    You can make the script simpler like this:

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

    Use 0.0.0.0 to target all hosted IP's (equivalent to "*" in IIS Manager) or replace it with a specific IP if needed.

    0 讨论(0)
提交回复
热议问题