Ken*_*Ken 4 windows iis ssl iis-7 ssl-certificate
我通过 APPCMD 发现大多数 IIS7 配置都可以通过命令行进行。我还没有想出如何做的一件事:在 IIS 管理器中,绑定 -> 编辑 -> 选择一个 SSL 证书。
“appcmd 设置站点 /site.name:foo /?” 列出了 2 个以“bindings”(“protocol”、“bindingInformation”)开头的键,但我还没有发现它们是什么。
其他一些地方建议“netsh”可以做到这一点,但“netsh http show sslcert”显示我的证书绑定到“0.0.0.0:443”而不是特定的 IIS7 站点。
鉴于我知道一个站点的 IIS7 名称/ID,以及我的证书的哈希值(这里已经是其他站点上的证书),是否有任何方法可以从命令行使其成为另一个 IIS7 站点的 SSL 证书?
更新:我在 UI 中执行此操作,并对注册表进行了区分,并看到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\SslBindingInfo\0.0.0.0:443(也在 ControlSet0001 中)是使用我的 SslCertHash 创建的,并且一个 AppId 看起来就像“netsh http show sslcert”打印的 UUID,但每个部分都颠倒了 (81e1c34d4be121...)。我想我读到这是IIS 应用程序的AppId,但我不确定。当我在 IIS 管理器中删除站点并使用此 SSL 证书切换到另一个站点时,它不会在注册表中更改。无论如何,这看起来与netsh
提供的粒度级别相同,所以我真的不知道 IIS 管理器从哪里获得它的每个站点绑定 SSL 证书分配。
为了调出这些位,这与 IIS6 及更早版本不同。在 IIS 6 中,元数据库包含套接字、与套接字关联的证书哈希等。在 7 中,IIS 配置只包含一个套接字 (abcd:443),让操作系统担心该套接字上的证书管理内容。(通过 GUI,它的设计看起来与过去大致相同)。规则是:您只能将一个证书绑定到一个套接字。
信息系统:
在 IIS 7 中,IIS 实际上并不关心证书绑定。我知道,就像,喘气,对吧?
在 IIS7 中,所有 IIS 配置所做的就是将 IIS 绑定到特定的套接字(IP + 端口)。就是这样。当您不需要统一每个盒子上的证书哈希时,使配置在盒子之间更加便携。
IIS 配置使用APPCMD或{在此处插入 IIS 7 管理工具选择},通过创建站点到套接字的绑定进行管理。
操作系统:
操作系统层接管 SSL 部分的控制权,因此您可以使用 NETSH 将证书与特定套接字相关联。
这是通过NETSH完成的。
Sukesh 很久以前发布了这两个位的指南,它仍然有效:https ://stackoverflow.com/questions/591597/how-to-assign-a-ssl-certificate-to-iis7-site-from-command -迅速的
归档时间: |
|
查看次数: |
12529 次 |
最近记录: |