如何从命令提示符为IIS7站点分配SSL证书

Dav*_*sen 52 iis ssl iis-7 ssl-certificate appcmd

您能告诉我是否可以使用APPCMD应用程序将SSL证书分配给IIS7中的网站?

我熟悉设置HTTPS绑定的命令

appcmd set site /site.name:"A Site" /+bindings.[protocol='https',bindingInformation='*:443:www.mysite.com']
Run Code Online (Sandbox Code Playgroud)

以及如何获取当前映射

%windir%\system32\inetsrv\Appcmd
Run Code Online (Sandbox Code Playgroud)

但似乎找不到任何方法将网站映射到证书(例如证书哈希)

Dav*_*sen 52

答案是使用NETSH.例如

netsh http add sslcert ipport=0.0.0.0:443 certhash='baf9926b466e8565217b5e6287c97973dcd54874' appid='{ab3c58f7-8316-42e3-bc6e-771d4ce4b201}'
Run Code Online (Sandbox Code Playgroud)

  • 输入`netsh http show sslcert`将给出机器上安装的证书的appid和certhash. (8认同)
  • 你在哪里得到appid? (3认同)
  • 对我不起作用:SSL证书添加失败,错误:183当该文件已存在时无法创建文件. (3认同)
  • 有人可以详细说明如何获取特定站点的应用程序 ID 吗?我尝试了 Get-StartApps,但似乎没有列出任何网站。 (3认同)
  • *从哪里获取 appid?* 我使用“{4dc3e181-e14b-4a21-b022-59fc669b0914}”,这是 IIS 的 appid,在 IIS 管理器 UI 中执行此操作时使用。*对我不起作用:SSL 证书添加失败,错误:183 当该文件已存在时无法创建文件。* 您正在尝试配置已配置的端口,请参阅“netsh http show sslcert”和“netsh” http delete sslcert` 用于检查和删除配置。*记得添加单引号...* 此处显示单引号,如果使用 Windows 命令提示符,则需要将其删除。 (2认同)

ori*_*rip 17

这对我帮助很大:Sukesh Ashok Kumar的简单指南,从命令行为IIS设置SSL.包括使用certutil/ 导入/生成证书makecert.

http://www.awesomeideas.net/post/How-to-configure-SSL-on-IIS7-under-Windows-2008-Server-Core.aspx

编辑:如果原始URL已关闭,它仍可通过Wayback Machine获得.


Dav*_*dro 9

使用PowerShell和WebAdministration模块,您可以执行以下操作以将SSL证书分配给IIS站点:

# ensure you have the IIS module imported
Import-Module WebAdministration

cd IIS:\SslBindings
Get-Item cert:\LocalMachine\My\7ABF581E134280162AFFFC81E62011787B3B19B5 | New-Item 0.0.0.0!443
Run Code Online (Sandbox Code Playgroud)

需要注意的事项......值"7ABF581E134280162AFFFC81E62011787B3B19B5"是您要导入的证书的指纹.因此需要先将其导入证书库.该New-Itemcmdlet执行的IP地址(0.0.0.0为所有IP地址)和端口.

有关详细信息,请参阅http://learn.iis.net/page.aspx/491/powershell-snap-in-configuring-ssl-with-the-iis-powershell-snap-in/.

我已经在Windows Server 2008 R2以及Windows Server 2012预发布版中对此进行了测试.