【问题标题】:Certificate Trust Lists and IIS7证书信任列表和 IIS7
【发布时间】:2008-11-28 14:03:18
【问题描述】:

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

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

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

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

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

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

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

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

谁能告诉我怎么做?

【问题讨论】:

    标签: iis-7 ssl ctl


    【解决方案1】:

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

    【讨论】:

    • 啊,终于有人记录了正确的步骤。过去几周我一直在与微软合作解决这个问题,结果发现这是 IIS 7.5 的一个错误,但似乎确实适用于 IIS 7.0。虽然我还没有确认这些说明的每一步,但在快速查看它们之后,一切看起来都是准确的。谢谢视觉。
    • 如果该页面仍然在线......或存档在waybackmachine。
    • 我找到了。下载链接仍然有效。 rethinker.net/Geek/Configuration/IIS7-CTLs.htm
    【解决方案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 add sslcert ipport=10.10.10.10:443 certhash=adfdffa988bb50736b8e58a54c1eac26ed005050 appid={ffc3e181-e14b-4a21-b022-59fc669b09ff} sslctlidentifier=MyCTL sslct

    (IP 地址被修改),但我收到此错误:

    SSL 证书添加失败,错误:1312 指定的登录会话不存在。它可能已经被终止。

    我确信该错误与 CTL 选项有关,因为如果我删除它们,它会起作用(尽管当然没有分配 CTL)。

    谁能帮我完成这最后一步并完成这项工作?

    2010 年 1 月 7 日更新: 我从未使用 IIS 7.0 解决此问题,并且已将我们的应用程序迁移到 IIS 7.5 并再次尝试。我在我的测试服务器上安装了 IIS6 兼容性,并尝试了使用 adsutil.vbs 记录的步骤here。我立即遇到了 Niel 在上面所做的同样的错误:

    ErrNumber: -2147023584 尝试设置属性时出错:SslCtlIdentifier

    运行此命令时:

    adsutil.vbs 设置 w3svc/1/SslCtlIdentifier MyFriendlyName

    然后我继续尝试记录的下一个 adsutil.vbs 命令,但失败并出现同样的错误。

    我已验证我创建的 CTL 的友好名称为 MyFriendlyName,并且它存在于 LocalComputer 的“中间证书颁发机构\证书信任列表”存储中。

    所以我又一次陷入了僵局。我不知道还能尝试什么。有没有人让 CTL 与 IIS7 或 7.5 一起工作?曾经?我在打败一匹死马吗?谷歌除了我自己的帖子和其他类似的故事外什么都没有。

    更新 6/08/10 - 我现在可以确认 KB981506 解决了这个问题。有一个与此 KB 相关的补丁,必须将其应用于 Server 2008 R2 机器才能启用此功能。一旦安装好,对我来说一切都完美无缺。

    【讨论】:

      【解决方案3】:

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

      这有更详细的记录:http://technet.microsoft.com/en-us/library/hh831771.aspx

      【讨论】:

        猜你喜欢
        • 2013-06-04
        • 1970-01-01
        • 2016-01-09
        • 1970-01-01
        • 2016-06-01
        • 2019-05-20
        • 2012-03-01
        • 2012-02-11
        • 2020-05-16
        相关资源
        最近更新 更多