首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenSSL WinINET客户端

OpenSSL WinINET客户端
EN

Stack Overflow用户
提问于 2012-12-28 14:37:00
回答 1查看 3.8K关注 0票数 2

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

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

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-28 15:12:15

有帮助吗?

如果服务器SSL证书由未知或无效的证书颁发机构颁发,则WinInet HttpSendRequest API或MFC::SendRequest将因错误12045 (ERROR_INTERNET_INVALID_CA)而失败。

我认为在发出请求之前,应该像这样调用InternetSetOption(),因为标志没有指定SECURITY_FLAG_IGNORE_UNKNOWN_CA

代码语言:javascript
复制
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,...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14071099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档