c++ - 使用 <urlmon.h> 和 URLDownloadToFile 获取 HTTPS Web 资源

标签 c++ winapi ssl urlmon

全部,

我正在编写一个程序,可以从本地网络内外的各种网站下载内容。为此,出于兼容性原因,我必须使用库和 C++。到目前为止,我已经能够成功访问网络上的普通 HTTP 页面和 HTTPS 页面。示例:

 HRESULT res = URLDownloadToFile( NULL,
          LPCTSTR(CString("https://www.google.com/")),
          LPCTSTR(CString("websitecontent.txt")),
          0,
          NULL);

有两件事我不能做: 1) 访问使用本地 CA 证书的本地网络资源。

2) 访问使用本地 CA 证书并通过客户端证书请求客户端身份验证的本地网络资源。

在第一种情况下,我认为 Windows 不允许连接,因为它不在受信任 CA 的 Windows 列表中。

在第二个方面,我认为我需要想出一种方法将客户端证书/私钥集成到对 URLDownloadToFile 的调用中,但我不知道如何完成此操作。此外,我还必须告诉 Windows 信任本地 CA。

如有任何帮助,我们将不胜感激。

最佳答案

我认为您需要检查证书链在 Internet Explorer 中是否受信任。

更好,使用libcurl :)

关于c++ - 使用 <urlmon.h> 和 URLDownloadToFile 获取 HTTPS Web 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3417910/

相关文章:

c++ - Putty-无法看到错误堆栈跟踪的顶部

c# - A^=B^=A^=B; C# Visual Studio 中的意外结果

C++ std::unique_ptr 但不可移动?

delphi - Delphi XE5 Shell执行非英文字符

java - Jetty WebsocketClient 不连接 Android 上的 SSL

C++ - '(' 标记之前的预期主表达式和 ‘(’ 标记之前缺少的模板参数

c++ - 如何在 x86(Pentium 及更高版本)上执行原子 64b 读取?

c++ - 对 COM 端口抽象库进行单元测试的最佳方法是什么?

ssl - 没有默认本地主机证书的 wso2 AS SSL 错误

.net - NAT 后的 FTPWebRequest(PASV,SSL)