我有以下Powershell脚本,可以在IIS6中创建一个新网站:



有谁知道我如何将现有的SSL证书分配给网站?

我知道我可以使用adsutil.vbs设置端口号,如下所示:



但是,在分配现有的ssl证书时,我面临一个很大的空白。

最佳答案

我认为这是您想要的:

$w3svc = "W3SVC/566412209"     # <-- W3SVC/[iis number]
$pfxPath = "c:\ssl\myssl.pfx"
$pfxPassword = "password123"   # Whatever the certificate file's password is

$certMgr = New-Object -ComObject IIS.CertObj
$certMgr.ServerName = [System.Environment]::MachineName
$certMgr.InstanceName = $w3svc
$certMgr.Import($pfxPath, $pfxPassword, $true, $true)

您还可以创建一个.NET Interop程序集(通过向C:\WINDOWS\system32\inetsrv\certobj.dll添加COM引用或使用tlbimp.exe),以便可以与PowerShell和.NET项目一起使用:
[void][reflection.assembly]::loadfrom("Interop.CERTOBJLib.dll")
$certMgr = new-object -typeName CERTOBJLib.IISCertObjClass
$certMgr.ServerName = [System.Environment]::MachineName
$certMgr.InstanceName = $w3svc
$certMgr.Import($pfxPath, $pfxPassword, $true, $true)

您仍然必须像现在那样单独设置SSL端口绑定(bind)。

IIS.CertObj上的MS文档在这里:

09-25 15:39