关闭

Http Error 12057 (Bug Fix Note)

标签: securityserverinternetwindows平台测试
3481人阅读 评论(1) 收藏 举报
分类:

产品被报告了一个 Bug, 只发生在特定平台 Windows Server 2003 Standard Edition.

查看 Trace Log 发现 Wininet 调用的封装类 返回 Error 12057, 它的具体错误内容是:

ERROR_WINHTTP_SECURE_CERT_REV_FAILED
12057
Indicates that revocation cannot be checked because the revocation server was offline (equivalent to CRYPT_E_REVOCATION_OFFLINE).
打开 IE->Tools->Internet Options->Advanced Tab->Security Options->”Check for server certificate revocation(Requires Restart)”

这个选项当前为选中状态。取消这个选项,Bug 症状消失。经过测试发现只有 Windows Server 2003 Standard Edition 的 IE 默认选中该项,而且在其他平台即时此选项选中亦不会发生 Error 12057 (Microsoft’s Bug ? or with other options?)。决定通过编码解决这个问题。
其实编码解决这个问题倒是很简单, 在 HttpOpenRequest 后增加如下代码,设置当前 Http 连接选项取消这个检查

DWORD dwFlags = 0;

DWORD dwError = 0;

DWORD dwBuffLen = sizeof(dwFlags);
InternetQueryOption(m_hRequest, INTERNET_OPTION_SECURITY_FLAGS,

(LPVOID)&dwFlags, &dwBuffLen);

dwFlags |= SECURITY_FLAG_IGNORE_REVOCATION;

InternetSetOption(m_hRequest, INTERNET_OPTION_SECURITY_FLAGS, (LPVOID)&dwFlags, sizeof(dwFlags)) ;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:102493次
    • 积分:1357
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:13篇
    • 译文:0篇
    • 评论:18条
    文章分类
    最新评论