【问题标题】:Windows 8: SSL certificate binding fails both programmatically and through netshWindows 8:SSL 证书绑定以编程方式和通过 netsh 均失败
【发布时间】:2013-03-29 10:32:55
【问题描述】:

我们有一个自动生成证书并使用 httpapi 将其绑定到选定端口的应用程序。在 Windows 7 和 2003/2008 服务器下,这就像一个魅力。证书也可以通过解除绑定的方式重新绑定到其他端口,然后绑定到新的端口。

但是,在 Windows 8 下,只有从旧端口解除绑定才能成功。尝试将证书绑定到新端口值失败,错误代码 1312 显示消息“指定的登录会话不存在。它可能已经终止。”

这里奇怪的是,当尝试通过 netsh 添加绑定证书时,它也会在提升的控制台中失败,并显示相同的错误和消息(“SSL 证书添加失败,错误:1312|A指定的登录会话不存在。它可能已被终止。"),无论端口号如何。

为了增加悬念,应用程序有一个安装程序,该安装程序最初在安装时绑定证书,并在卸载时取消绑定。而这件事永远不会失败!安装程序在“Windows 7”操作系统环境下工作,而应用程序在“Windows Vista”下,如果这可能是一个线索。控制台位于“Windows 8”上下文中。

有人在这个操作系统下遇到过类似的问题吗?任何想法为什么会发生这种情况?

任何帮助都非常感谢,在此先感谢您!

【问题讨论】:

    标签: ssl binding windows-8 certificate port


    【解决方案1】:

    在我们的证书生成代码中,我们使用 X509Store 类的方法将证书添加到存储中。在 Windows 8 下,即使应用程序以管理员身份运行,这也会使证书“不受信任”。原因可能是 .NET 4.5 中类的不同实现或由于应用程序运行的操作系统上下文而施加的限制。

    通过 Process 类调用“certutil.exe”将证书添加到存储中解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多