我在C中创建一个网络客户端,而且我使用linux工作,我不知道如何在Windows上使用CA证书。 Windows手册不是很好。
默认情况下,Windows证书目录(root)存在于Windows?
与linux下的目录/ etc / ssl / certs /一样,这是一个CA证书列表。
我需要这个以适应与openSSL一起使用的程序。
你可以帮帮我吗?提前谢谢。答案 0 :(得分:1)
我不相信Windows会将您的证书存储在默认文件位置,而是存储在注册表项中。查看this link - 它适用于Windows Server 2003,但我相信大部分信息仍然相关。
通常用于管理证书的基本工具是Certreq.exe和Certutil.exe。
Here is a basic C++ program有关如何为Windows插入/创建证书的示例。它没有解决您问题的网络部分,但我认为您可能会发现它很有用。
祝你好运。答案 1 :(得分:0)
Windows上默认存在CA证书目录(root)?喜欢 linux下的目录/ etc / ssl / certs /,这是一个CA列表 证书。
没有。您必须在Windows上为您的应用提供具有根证书和中间证书的文件。它可以来自Linux,也可以通过certmgr手动从Windows应用商店导出nessecity证书。或者,您可以使用WinAPI的帮助以编程方式创建受信任的根证书和中间证书列表,例如Qt。
答案 2 :(得分:0)
您可以访问Windows证书存储区(包含CA证书)并操作具有此功能的证书:
CertOpenSystemStore()
CertEnumCertificatesInStore()
CertCloseStore()
并将DER证书转换为OpenSSL X509结构:
d2i_X509()
例如,请参阅此链接: