AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 26648
In Process
BrettRobi
BrettRobi
Asked: 2009-06-17 07:35:22 +0800 CST2009-06-17 07:35:22 +0800 CST 2009-06-17 07:35:22 +0800 CST

IIS7 中的证书信任列表

  • 772

我正在尝试为托管在 IIS7 中的 WebService 启用相互身份验证。我有服务器端证书设置和工作,但无法弄清楚如何在 IIS7 中创建和设置证书信任列表,以便我可以要求和验证客户端证书。

我所有的客户端证书都是由我自己的根证书签名的,所以我需要创建一个只包含我的根证书的 CTL,然后让 IIS 验证客户端提供的 CTL 证书。

谁能阐明如何做到这一点?IIS6 有一个用于分配 CTL 的 UI,但我在 IIS7 中找不到类似的东西。

更新: 我现在已经成功地在向导模式下使用 MakeCTL 来创建具有友好名称的 CTL。但是,我的 IIS7 机器上没有 adsutil 支持,因此通过其他地方的其他帖子,我尝试使用“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,并再次尝试。根据 Taras Chuhay 的回复,我在我的测试服务器上安装了 IIS6 兼容性,并尝试了他使用 adsutil.vbs 记录的步骤(也可以在此处找到)。我立即遇到了这个错误:

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

运行此命令时:

adsutil.vbs 设置 w3svc/1/SslCtlIdentifier MyFriendlyName

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

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

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

更新 2/23/10 - 我已经与 Microsoft 确认这是 IIS 7.5 的一个错误,但它确实适用于 IIS 7。查看此链接了解详细信息:http ://rethinker.net/Geek/Configuration/IIS7 -CTLs.htm

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

iis-7 ssl ssl-certificate
  • 3 3 个回答
  • 6155 Views

3 个回答

  • Voted
  1. Taras Chuhay
    2009-06-17T08:30:48+08:002009-06-17T08:30:48+08:00

    这听起来很奇怪,但您不能使用 IIS 7.0 用户界面来创建证书信任列表 (CTL)。按照以下步骤使用 IIS 7.0 创建 CTL。

    1. 使用 MakeCTL.exe 创建 CTL。有关 MakeCTL.exe 的详细信息,请参阅 MSDN 站点上的MakeCTL页。

      MakeCTL.exe 工具是.NET Framework SDK 1.1 版的一部分。安装 SDK 后,MakeCTL.exe 将出现在以下位置:

    \Program Files\Microsoft.NET\SDK\v1.1\Bin

    1. 创建 CTL 后,您必须运行 AdsUtil.vbs 以将 CTL 标识符分配给 MakeCTL.exe 中使用的名称。

      adsutil.vbs 设置 w3svc/1/SslCtlIdentifier

      MakeCTL.exe 中使用的 CTL 的友好名称在哪里。

    2. 运行 adsUtil.vbs 以设置 SslCtlStoreName。

    adsutil.vbs 设置 w3svc/1/SslCtlStoreName CA

    1. 运行 AdsUtil.vbs 后,使用以下命令停止 Web 服务:

    净停止 HTTP /y

    1. 使用以下命令重新启动 WS3SVC 服务:

    网络启动 W3SVC

    • 1
  2. user57147
    2010-10-15T08:09:42+08:002010-10-15T08:09:42+08:00

    您必须从 Microsoft 安装此修补程序

    KB981506 - 它解决了这个问题。

    抱歉,在发布此内容之前,我没有看到答案中引用的 KB

    • 1
  3. Nasko
    2009-07-15T20:25:41+08:002009-07-15T20:25:41+08:00

    您是否确保 CTL 是在机器的上下文中创建的?默认情况下,SSL 将在机器上下文中查找,如果在那里找不到,它会给你一个错误(虽然不确定这是否是错误)。

    • 0

相关问题

  • 在您分发的应用程序中使用 Apache HTTPD 运行 SSL 的最佳方式是什么?

  • IIS 7 Web 应用程序有哪些好的负载测试工具?

  • 使用 IIS7 请求路由和负载平衡模块进行负载平衡

  • 什么可能导致 IIS7 拒绝绑定到不允许导出私钥的证书?

  • 您最喜欢的 SSL 证书提供商是什么?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve