我有一个工作客户机和一个服务器,一旦完成,就会有一个有效的SSL证书。
目前,为了进行测试,我只是通过添加标记INTERNET_FLAG_IGNORE_CERT_CN_INVALID和SECURITY_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);我让这个在我的笔记本电脑上工作得很好。现在我正试图在我的电脑上使用它。完全一样的密码。复制和粘贴文件(都是2008),现在我收到了12045错误。意思是Invalid Certificate Authority
我试过禁用Windows防火墙,但失败了。两台计算机连接到同一路由器
有什么原因吗?
谢谢!
编辑基本上与描述的微软在这里相同,只有本文是针对Windows CE的
发布于 2012-12-28 15:12:15
这有帮助吗?
如果服务器SSL证书由未知或无效的证书颁发机构颁发,则WinInet HttpSendRequest API或MFC::SendRequest将因错误12045 (ERROR_INTERNET_INVALID_CA)而失败。
我认为在发出请求之前,应该像这样调用InternetSetOption(),因为标志没有指定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,...https://stackoverflow.com/questions/14071099
复制相似问题