【问题标题】:Windows service couldn't access a certificate storeWindows 服务无法访问证书存储
【发布时间】:2015-09-15 06:20:45
【问题描述】:

我正在尝试使用 winldap 对 Opends 服务器进行身份验证,我将自签名证书安装到系统受信任的根证书、个人存储等(如果适用)。 ldp.exe 是 microsoft 的工具,适用于 ssl 和 tls 连接。我的 PC 中有 2 个用户帐户(管理员和管理员),这两个用户帐户都可以正常工作,除了我的 windows 服务。

我的 Windows 服务(图书馆管理程序)无法验证服务器证书。但我的示例代码有效(这是类似于我的 windows 服务的一小部分代码),

我在这个网站上看到过类似的场景以及他们的建议 (https://msdn.microsoft.com/en-us/library/aa702621.aspx)。

我的服务在服务选项卡中将组名显示为 N/A,在任务管理器的进程选项卡中将用户名显示为 SYSTEM,我不知道该怎么办,请有人帮我解决这个问题。

提前致谢。

【问题讨论】:

    标签: windows wcf service windows-services truststore


    【解决方案1】:

    实际上 Windows 有 3 种类型的证书存储 Local User 、 System 、 Services 。 通常windows服务作为一个叫做System的特殊账户运行(我们也可以让它在一个特定的用户账户上运行)

    自签名证书仅添加到本地用户帐户(如上所述,适用于管理员和管理员)。所以windows服务无法验证证书。

    解决方案是将证书添加到系统存储中。

    程序运行良好

    【讨论】:

    • 在哪里可以找到“系统商店”来添加证书?
    • @UlyssesAlves 你找到解决方案了吗?
    • @tryingToLearn 没有。我不记得我是如何或是否解决了这个问题。那是在我以前在ao工作过的公司,我也无法搜索代码。祝兄弟好运。
    • 这是一个旧线程。但是为我解决的问题是将证书添加到本地计算机,如以下链接所示:sonicwall.com/support/knowledge-base/…