Я думаю, что это то, что вы хотите:
$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 (добавив ссылку на COM к C:\WINDOWS\system32\inetsrv\certobj.dll
или используя 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 отдельно, как вы уже делаете.
Документы MS на IIS.CertObj находятся здесь:
Управление сертификатами сервера с помощью IISCertObj (IIS 6.0)