gpt4 book ai didi

powershell - 使用 PowerShell 脚本在 IIS 8 中启用 SNI 注册 https 绑定(bind)

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:43 25 4
gpt4 key购买 nike

我目前正在设置一个新的自动化部署,想知道如何以编程方式在 IIS 8 上使用启用的 SNI 注册 https 绑定(bind)。该网站已存在,并且已安装 SSL 证书。

powershell脚本传入了以下参数:

  • 网站名称
  • SSL 证书指纹
  • 要绑定(bind)的域

假设 SSL 证书已经安装。

谁能帮帮我?

最佳答案

如果正如您所说的那样,证书已经安装并且应用程序池身份具有私钥的权限,那么您应该能够像这样注册一个新的绑定(bind):

New-WebBinding -Name $WebsiteName -Protocol "https" -Port 443 -IPAddress $IPAddress -HostHeader $HostHeader -SslFlags $sslFlags

您当然需要在运行此代码之前设置变量,但是这些应该是不言自明的。

设置 $sslFlags 变量的值时,应根据下表进行设置:

0  No SNI
1 SNI Enabled
2 Non SNI binding which uses Central Certificate Store.
3 SNI binding which uses Central Certificate store

在您的情况下,这应该设置为 1,因为您没有使用中央证书存储。

一旦您获得 SSL 绑定(bind),您就需要将绑定(bind)与正确的证书相关联。我根据经验发现,最简单的方法是使用 netsh.exe 命令。可以直接使用 Powershell,但经过数小时的调查和解决不同的问题后,我发现 netsh 更可靠。

此处的语法取决于绑定(bind)的设置方式,但是如果您使用的是 SNI,那么您将需要以下语法:(不要担心 appid,值是什么并不重要)

netsh http add sslcert hostnameport=$($HostHeader):$($Port) certhash=$Thumbprint appid='{4dc3e181-e14b-4a21-b022-59fc669b0914}' certstorename=MY

此代码还需要设置变量。主机 header 应该是您的网站绑定(bind)到的 DNS 名称,端口很可能是 443,变量 $Thumbprint 需要包含指纹或您将要使用的证书的哈希值。您可以使用证书提供程序找到它,如以下代码所示:

$Thumbprint = (Get-ChildItem -Path cert:\LocalMachine\My | Where-Object {$_.GetNameInfo("SimpleName",$false) -eq "my cert common name"}).Thumbprint

希望这对您有所帮助,如果您需要更多帮助,请更新问题。我在这方面做了很多工作。

关于powershell - 使用 PowerShell 脚本在 IIS 8 中启用 SNI 注册 https 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26485834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com