我正在尝试启用IIS7中托pipe的WebService的相互身份validation。 我有服务器端证书设置和工作,但无法弄清楚如何获得在IIS7中创build和设置的证书信任列表,以便我可以要求和validation客户端证书。
我所有的客户端证书都是由我自己的根证书签名的,因此我需要创build一个只包含我的根证书的CTL,然后让IISvalidation客户端提供的针对CTL的证书。
谁能阐明如何做到这一点? IIS6有一个用于分配CTL的UI,但在IIS7中我找不到任何类似的东西。
更新:我现在已经成功地在向导模式下使用MakeCTL创build一个友好名称的CTL。 但是,我没有adsutil支持我的IIS7框,所以通过其他post在其他地方我试图使用'netsh http添加sslcert'命令分配CTL到我的网站。
在我可以使用这个命令之前,我必须删除分配给我的站点的现有SSL证书进行服务器authentication。 然后在我的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地址是munged),但我得到这个错误:
SSL证书添加失败,错误:1312指定的login会话不存在。 它可能已经被终止了。
我相信这个错误与CTL选项有关,因为如果我删除它,它就可以工作(尽pipe当然没有CTL被分配)。
任何人都可以帮助我采取这最后一步,使这项工作?
更新01-07-2010:我从来没有解决这个与IIS 7.0,并已经迁移到IIS 7.5我们的应用程序,并给予另一个尝试。 根据Taras Chuhay的回复,我在我的testing服务器上安装了IIS6兼容性,并尝试使用adsutil.vbs(也可以在此处find)logging的步骤。 我立即遇到了这个错误:
ErrNumber:-2147023584尝试设置属性的错误:SslCtlIdentifier
运行这个命令时:
adsutil.vbs设置w3svc / 1 / SslCtlIdentifier MyFriendlyName
然后,我继续尝试下一个adsutil.vbs命令logging,它失败了相同的错误。
我已经validation了我创build的CTL具有MyFriendlyName的友好名称,并存在于LocalComputer的“中级证书颁发机构\证书信任列表”存储中。
所以我又一次陷入了僵局。 我不知道还有什么要尝试的。 有没有人得到CTL的IIS7或7.5? 自从? 我打了死马吗? Google除了我自己的post和其他类似的故事外什么都没有。
更新10年2月23日 – 我已经确认与微软,这是一个与IIS 7.5的错误,但它与IIS 7工作。看看这个链接的详细信息: http : //rethinker.net/Geek/Configuration/IIS7 -CTLs.htm
更新6/08/10 – 我现在可以确认KB981506可以解决这个问题。 有一个与此KB关联的修补程序必须应用于Server 2008 R2计算机才能启用此function。 一旦安装所有作品完美无瑕的我。
这听起来很奇怪,但您不能使用IIS 7.0用户界面来创build证书信任列表(CTL)。 请按照下列步骤使用IIS 7.0创build一个CTL。
使用MakeCTL.exe创buildCTL。 有关MakeCTL.exe的更多信息,请参阅MSDN站点上的MakeCTL页面。
MakeCTL.exe工具是.NET Framework SDK V1.1的一部分。 一旦安装了SDK,MakeCTL.exe就会出现在以下位置:
\ Program Files \ Microsoft.NET \ SDK \ v1.1 \ Bin
在创buildCTL之后,必须运行AdsUtil.vbs以将CTL标识符分配给MakeCTL.exe中使用的名称。
adsutil.vbs设置w3svc / 1 / SslCtlIdentifier
MakeCTL.exe中使用的CTL的友好名称在哪里?
adsutil.vbs设置w3svc / 1 / SslCtlStoreName CA
净停止HTTP / Y
净启动W3SVC
您必须从Microsoft安装此修补程序
KB981506 – 解决了这个问题。
对不起,我没有看到在答复中引用的知识库,直到我发布
你确定CTL是在机器的环境下创build的吗? 默认情况下,SSL将在机器上下文中查找,如果它在那里找不到,它会给你一个错误(虽然不知道这是否是一个)。