gpt4 book ai didi

visual-studio - OpenSSL WinINET 客户端

转载 作者:太空宇宙 更新时间:2023-11-03 13:01:38 25 4
gpt4 key购买 nike

我有一个正常工作的客户端和一个服务器,一旦完成就会有一个有效的 SSL 证书。

目前,为了进行测试,我只是通过添加标志 INTERNET_FLAG_IGNORE_CERT_CN_INVALIDSECURITY_FLAG_IGNORE_UNKNOWN_CA 来禁用客户端中的 SSL 验证需求,如下所示:

HINTERNET hRequest = HttpOpenRequest(hConnection,
"GET","index.html",
NULL,NULL,NULL,
INTERNET_FLAG_RELOAD|
INTERNET_FLAG_EXISTING_CONNECT
#ifdef __HTTPS__
| INTERNET_FLAG_SECURE |INTERNET_FLAG_IGNORE_CERT_CN_INVALID|SECURITY_FLAG_IGNORE_UNKNOWN_CA
#endif
,
dwContext);

我让它在我的笔记本电脑上完美运行。现在我想在我的电脑上使用它。完全相同的代码。复制并粘贴文件(均为 Visual Studio Professional 2008),现在出现 12045 错误。这意味着 无效的证书颁发机构

我尝试禁用 Windows 防火墙,但没有用。两台电脑连接到同一个路由器

知道是什么原因造成的吗?

谢谢!

编辑基本上发生的事情与描述的一样here by Microsoft , 只有这篇文章适用于 Windows CE

最佳答案

是否this帮助?

If a server SSL certificate is issued by unknown or invalid certificate authority WinInet HttpSendRequest API or MFC CInternetFile::SendRequest will fail with error 12045 (ERROR_INTERNET_INVALID_CA).

我认为你应该在发出请求之前调用 InternetSetOption(),就像这样,因为 HttpOpenRequest() flags不要指定 SECURITY_FLAG_IGNORE_UNKNOWN_CA:

HINTERNET hRequest = HttpOpenRequest(hConnection,...

#ifdef __HTTPS__
DWORD dwFlags;
DWORD dwBuffLen = sizeof(dwFlags);
InternetQueryOption(hRequest, INTERNET_OPTION_SECURITY_FLAGS, (LPVOID)&dwFlags, &dwBuffLen);

dwFlags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA;

InternetSetOption (hRequest, INTERNET_OPTION_SECURITY_FLAGS, &dwFlags, sizeof (dwFlags));
#endif

HttpSendRequest(hRequest,...

关于visual-studio - OpenSSL WinINET 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14071099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com