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

问题描述 投票:0回答:2

全部,

我正在编写一个程序,能够从本地网络内外的各个网站下载内容。为此,出于兼容性原因,我必须使用库和 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。

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

c++ winapi ssl urlmon
2个回答
1
投票

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

更好,使用 libcurl :)


0
投票

只需在 URLDownloadToFile 之前调用

CoInternetSetFeatureEnabled(FEATURE_SSLUX, SET_FEATURE_ON_PROCESS, TRUE)

© www.soinside.com 2019 - 2024. All rights reserved.