4

我需要生成一个用于 IIS7 的 CTL。

我使用 MakeCTL(在 Win2k3 SDK 上)生成了一个 CTL 文件,并且只将我自己的 RootCA 证书放在 CTL 中。

但是,当我随后使用 adsutil.vbs 将我的网站设置为使用此 CTL 时,我得到:

ErrNumber:-2147023584 (0x80070520) 尝试设置属性时出错:SslCtlIdentifier

我正在像这样使用 adsutil.vbs:

cscript adsutil.vbs set w3svc/2/SslCtlIdentifier CTL 的友好名称在哪里

问题是,我无法设置友好名称。在向导结束时,它会显示“友好名称:”。

在 IIS6 中,我可以创建一个具有友好名称的 CTL(显示在证书 MMC 中),但如果我从那里导出它,当我导入它时,它不再具有友好名称。

谁能告诉我该怎么做?

4

3 回答 3

3

这应该适用于 IIS 7.0,但可能不适用于 IIS 7.5。
请让我们知道此页面是否有帮助 - http://www.rethinker.net/Blog/Post/14/How-to-Create-and-Use-a-CTL-for-IIS-7-0

于 2010-02-05T00:34:06.520 回答
2

我遇到了完全相同的问题,并且在寻找答案时遇到了同样的麻烦。

似乎没有记录的方法可以使用 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 机器才能启用此功能。一旦安装好,对我来说一切都完美无缺。

于 2008-12-05T16:52:50.723 回答
1

问题是关于 IIS7,但对于任何寻找此信息的人 - 从IIS8 开始,您不再需要使用 CTL,而是在证书存储中使用“客户端身份验证颁发者”。

对此进行了更详细的记录:http ://technet.microsoft.com/en-us/library/hh831771.aspx

于 2014-12-08T17:03:07.263 回答