我遇到了完全相同的问题,并且在寻找答案时遇到了同样的麻烦。
似乎没有记录的方法可以使用 MakeCTL 为证书信任列表创建友好名称。唯一记录在案的将 CTL 添加到 IIS7 的方法是使用上面 Neil 引用的 adsutil 脚本,但它需要一个友好的名称。我认为我们可以深入研究一种编程方式来做到这一点,但我并不打算深入。
这个问题的核心是 IIS7 似乎已经失去了对 CTL 的青睐,否则它会对它们有一些 UI 支持。人们是否将 CTL 的替代品与客户端证书结合使用?
我觉得奇怪这对 IIS7 来说不是一个更大的问题。
更新:
我终于回到了这个问题,并解决了友好名称问题。要获得指定的友好名称,您必须将 CTL 存储在证书存储中而不是文件中(我以前一直使用文件方法)。因此,在向导模式下使用 MakeCTL(无参数)并在“证书信任列表存储”页面上选择“证书存储”会导致一个新页面,让您指定一个友好名称。
所以我现在在 LocalMachine 的“中级证书颁发机构”证书库中有一个 CTL。现在我正在尝试使用“netsh http add sslcert”将 CTL 分配给我的站点。
在我可以使用此命令之前,我必须删除分配给我的站点以进行服务器身份验证的现有 SSL 证书。然后在我的 netsh 命令中,我指定了我删除的同一个 SSL 证书的指纹,加上一个组成的 appid,再加上“sslctlidentifier=MyCTL sslctlstorename=CA”。结果命令是:
netsh http 添加 sslcert ipport=10.10.10.10:443 certash=adfdffa988bb50736b8e58a54c1eac26ed005050 appid={ffc3e181-e14b-4a21-b022-59fc669b09ff} sslctlidentifier=MyCTL sslctlstorename=CA
(IP 地址已被修改),但我收到此错误:
SSL 证书添加失败,错误:1312 指定的登录会话不存在。它可能已经被终止。
我确信该错误与 CTL 选项有关,因为如果我删除它们,它会起作用(尽管当然没有分配 CTL)。
谁能帮我迈出最后一步并完成这项工作?
2010 年 1 月 7日更新:我从未使用 IIS 7.0 解决此问题,并且已将我们的应用程序迁移到 IIS 7.5,并再次尝试。我在我的测试服务器上安装了 IIS6 兼容性,并使用 adsutil.vbs尝试了此处记录的步骤。我立即遇到了 Niel 在上面所做的同样的错误:
ErrNumber:-2147023584 尝试设置属性时出错:SslCtlIdentifier
运行此命令时:
adsutil.vbs 设置 w3svc/1/SslCtlIdentifier MyFriendlyName
然后我继续尝试记录的下一个 adsutil.vbs 命令,但它失败并出现同样的错误。
我已验证我创建的 CTL 具有 MyFriendlyName 的友好名称,并且它存在于 LocalComputer 的“中间证书颁发机构\证书信任列表”存储中。
所以我又一次陷入了僵局。我不知道还能尝试什么。有没有人让 CTL 与 IIS7 或 7.5 一起工作?曾经?我在打败一匹死马吗?谷歌只找到我自己的帖子和其他类似的故事。
2010 年 6 月8 日更新- 我现在可以确认 KB981506 解决了这个问题。有一个与此 KB 相关的补丁,必须将其应用于 Server 2008 R2 机器才能启用此功能。一旦安装好,对我来说一切都完美无缺。