【问题标题】:CA certificate directory on WindowsWindows 上的 CA 证书目录
【发布时间】:2015-01-09 16:36:05
【问题描述】:

我在 C 中创建了一个网络客户端,通常我使用 linux,但我不知道 Windows 上的 CA 证书如何工作。而且windows手册也不是很好。

windows默认存在CA证书目录(root)?

像linux下的目录/etc/ssl/certs/,是CA证书的列表。

我需要这个来适应与 openSSL 一起工作的程序。

你能帮帮我吗?提前谢谢你。

【问题讨论】:

    标签: windows openssl certificate


    【解决方案1】:

    我认为 Windows 不会将您的证书存储在默认文件位置,而是存储在注册表项中。查看this link - 它适用于Windows Server 2003,但我相信大部分信息仍然相关。

    通常用于管理证书的基本工具是 Certreq.exe 和 Certutil.exe。

    Here is a basic C++ program 示例,了解如何为 Windows 插入/创建证书。它没有解决您问题的网络部分,但我认为您可能会发现它很有用。

    祝你好运。

    【讨论】:

      【解决方案2】:

      Windows 上默认存在 CA 证书目录(根目录)?喜欢 linux下的目录/etc/ssl/certs/,是CA的列表 证书。

      没有。您必须在 Windows 上为您的应用程序提供包含根证书和中间证书的文件。它可以来自 Linux,也可以通过 certmgr 从 Windows Store 手动导出nessecity 证书。或者,您可以使用 WinAPI 的帮助以编程方式创建受信任的根证书和中间证书列表,例如 Qt。

      【讨论】:

      • 实际上,Windows® 确实有一个系统范围的证书存储,并且每个用户一个。然而,它们并不存在于文件系统中。
      【解决方案3】:

      您可以访问 Windows 证书存储(其中包含 CA 证书)并使用以下功能操作证书:

      CertOpenSystemStore()
      CertEnumCertificatesInStore()
      CertCloseStore()
      

      并将 DER 证书转换为 OpenSSL X509 结构:

      d2i_X509()
      

      例如,请参阅此链接:

      TLS client:

      .

      【讨论】:

        猜你喜欢
        • 2020-03-31
        • 1970-01-01
        • 2011-05-17
        • 2019-05-25
        • 2020-02-03
        • 1970-01-01
        • 2010-09-25
        • 2012-04-10
        • 1970-01-01
        相关资源
        最近更新 更多