证书信任列表和IIS7

时间:2008-11-28 14:03:18

标签: iis-7 ssl ctl

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

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

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

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

我正在使用adsutil.vbs:

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

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

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

有人能告诉我怎么做吗?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

我遇到了完全相同的问题,并且遇到了同样的问题。

似乎没有记录的方法来使用MakeCTL为证书信任列表创建友好名称。向IIS7添加CTL的唯一记录方法是使用上面的adsutil脚本Neil引用,但它需要一个友好的名称。我认为我们可以采用一种程序化的方式来做到这一点,但我不打算那么深入。

这个问题的核心是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 sslctlstorename = CA

(IP地址已被提供),但我收到此错误:

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

我确定错误与CTL选项有关,因为如果我删除它们就行了(虽然当然没有分配CTL)。

任何人都可以帮助我采取最后一步并使其发挥作用吗?

更新01-07-2010:我从未使用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计算机才能启用此功能。一旦安装完毕,所有工作都会完美无缺。

答案 2 :(得分:1)

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

更详细地记录了这一点:http://technet.microsoft.com/en-us/library/hh831771.aspx