【问题标题】:No certificate was found for subject Name CN=IdentityTKStsCert未找到主题名称 CN=IdentityTKStsCert 的证书
【发布时间】:2018-11-07 06:27:50
【问题描述】:

我正在处理WIF training kit。尝试通过 STS 站点登录时出现以下错误。我点击登录,然后我被重定向到 STS 网站,我看到了这个No certificate was found for subject Name CN=IdentityTKStsCert

【问题讨论】:

    标签: asp.net ssl iis-7 wif


    【解决方案1】:

    为了进行 Microsoft 练习,您需要设置环境(使用正确的证书)。请按照以下设置说明(从 Microsoft 链接中提取(现已过时)-http://msdn.microsoft.com/en-us/gg271381)安装请求的证书。设置的源文件可以在页面右上角找到here.

    设置

    您必须执行以下步骤来准备您的计算机以进行本实验。

    1. 打开 Windows 资源管理器窗口并浏览到实验室的 Source\Setup 文件夹。
    2. 双击此文件夹中的 Dependencies.dep 文件以启动 Dependency Checker 工具并安装任何缺少的先决条件。这还将安装一些将在实验室中使用的代码 sn-ps 以及本地 STS 在第二个练习中使用的 localhost 证书。

    注意:此过程可能需要提升。 .dep 扩展名在安装期间与 Dependency Checker 工具相关联。有关设置过程以及如何安装 Dependency Checker 工具的更多信息,请参阅培训工具包 Assets 文件夹中的 Setup.docx 文档。

    1. 关闭代码 sn-ps 安装程序后,安装脚本将继续安装证书。如果您想继续安装所需的证书,请按 Y

    注意:如果您已经拥有另一个应用程序所需的“localhost”证书,请确保在继续安装实验室的证书之前对其进行备份。

    证书安装完成

    注意:如果您运行的是 Windows 7 或 Windows 2008 R2,您可能看不到此窗口。

    1. 完成后按任意键关闭设置控制台。

    注意:除了设置脚本之外,在本实验室的 Source\Setup 文件夹中,还有一个 Cleanup.cmd 文件可以用来卸载安装脚本安装的所有代码sn-ps。

    【讨论】:

    • 感谢您的通知 - MS 链接现在已过时。为了读者的利益,我复制了内容。
    【解决方案2】:

    如果您运行“mmc”(开始->运行->“mmc”),您应该能够进入计算机帐户的证书管理单元(文件->添加\删除管理单元)并检查Personal\Certificates 有一个带有 IdentityTKStsCert 的条目。

    如果是这样,请尝试从您的 web.config 条目中删除“CN=”,如下所示(隐藏其他 identityModel 配置条目):

        <microsoft.identityModel>
          <serviceCertificate>
            <certificateReference x509FindType="FindBySubjectName" findValue="IdentityTKStsCert" storeLocation="LocalMachine" storeName="My" />
          </serviceCertificate>
        </microsoft.identityModel>
    

    最后,您可能希望确保 IIS 可以访问私钥。回到 IIS 的证书管理单元,右键单击证书并选择所有任务-> 管理私钥,如果不存在则添加 IIS_IUSRS。 (我相信这仅适用于 IIS 7,正如您所标记的那样)

    【讨论】:

    • 当您说“尝试从 web.config 条目中删除 'CN=' 时,像这样(隐藏其他 identityModel 配置条目):”您的意思是从 value=" 中删除 'CN=' CN=IdentityTKStsCert”?我还需要将 microsoft.identyModel 部分插入 web.config 吗?
    • 是的,您的依赖方和 STS 都应该有 microsoft.IdentityModel 配置部分。安装 WIF SDK 后,您应该能够启动一个新的 asp.net mvc 项目并右键单击 -> 在 Visual Studio 中添加 STS 引用。然后,如果您选择“创建新 STS”选项,则所有 web.config 内容都应为您处理。
    【解决方案3】:

    找出困惑的所在。我将 Friendly Name 的证书放在 web.config 中。证书公用名实际上是名为Issued To 的属性。

    本文中有一部分是关于证书公用名的。 http://www.sslshopper.com/article-how-to-create-a-self-signed-certificate-in-iis-7.html

    【讨论】:

      猜你喜欢
      • 2013-12-18
      • 1970-01-01
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-23
      • 1970-01-01
      相关资源
      最近更新 更多