在 Windows Server 2003 和 Windows XP 专业版中的错误消息:"ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED"

文章翻译 文章翻译
文章编号: 909425 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状

当试图从安全套接字层 (SSL) 证书请求消息在 Microsoft Windows Server 2003 中或在 Microsoft Windows XP 专业人员与 Service Pack 2 (SP2) 中检索信息时您可能会收到与以下类似的错误消息:
ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED

解决方案

Windows 2003 Server

服务包信息

若要解决此问题,获得最新的 service pack,Windows Server 2003 的。有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
889100如何获取最新的 service pack,Windows Server 2003 的

修补程序信息

可以从 Microsoft 获得支持的修补程序。但是,此修补程序被用于解决本文所述的此问题。此修补程序仅应用于出现这一特定问题的系统。此修补程序可能会接受进一步的测试。因此,如果此问题没有对您造成严重的影响,我们建议您等待包含此修补程序的下一个软件更新。

是否可供下载此修补程序没有"提供修补程序下载"部分中,在这篇知识库文章的顶部。如果不会显示此部分,请联系 Microsoft 客户服务和支持以获取此修复程序。

注意如果出现其他问题,或者如果需要进行任何故障诊断,则您可能不得不创建单独的服务请求。将正常收取支持费用将应用于其他支持问题和不需要进行此特定的修补程序的问题。有关完整列表的 Microsoft 客户服务和支持的电话号码,或创建一个单独的服务请求,请访问下面的 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support
注意"提供修补程序下载"窗体所显示的此修复程序是可用的语言。如果您看不到您的语言,则是一个修复程序不能用于该语言。
系统必备组件
由于存在文件依赖性此修补程序要求 Windows Server 2003 Service Pack 1 (SP1)。

注意 x 基于 x64 的 Windows Server 2003 的版本包含 SP1。
重新启动要求
在应用此软件更新后,您必须重新启动计算机。
修补程序替换信息
此修补程序替代修补程序 902454。
文件信息
此修补程序的英文版具有的文件属性 (或更新的文件属性) 在下表中列出。 日期和时间对这些文件列出在协调世界时 (UTC)。当您查看文件信息时,将转换为本地时间。若要 UTC 与本地时间之间的时差使用控制面板中的日期和时间工具中的 时区 选项卡。
使用 SP1,32 位版本的 Windows Server 2003
收起该表格展开该表格
文件的名称文件版本文件大小日期时间平台
Winhttp.dll5.2.3790.2551361,9842005 年十月 19 日01: 46x86
Winhttp.man不适用1,1732005 年十月 19 日01: 48不适用
Winhttp.man不适用5972005 年十月 19 日01: 48不适用
x 基于 x64 的版本的 Windows Server 2003
收起该表格展开该表格
文件的名称文件版本文件大小日期时间平台
Winhttp.dll5.2.3790.2551521,2162005 年十月 18 日11: 11x64
Winhttp.man不适用1,1752005 年十月 18 日11: 11不适用
Winhttp.man不适用6012005 年十月 18 日11: 11不适用
Winhttp.dll5.2.3790.2551361,9842005 年十月 18 日11: 11x86
Winhttp.man不适用1,1732005 年十月 18 日11: 11不适用
Winhttp.man不适用5972005 年十月 18 日11: 11不适用
Windows Server 2003 sp1,基于 Itanium 的版本
收起该表格展开该表格
文件的名称文件版本文件大小日期时间平台
Winhttp.dll5.2.3790.25511,020,4162005 年十月 18 日11: 10IA 64
Winhttp.man不适用1,1742005 年十月 18 日11: 10不适用
Winhttp.man不适用5992005 年十月 18 日11: 10不适用
Winhttp.dll5.2.3790.2551361,9842005 年十月 18 日11: 10x86
Winhttp.man不适用1,1732005 年十月 18 日11: 10不适用
Winhttp.man不适用5972005 年十月 18 日11: 10不适用

Windows XP 专业版

修补程序信息

若要解决此问题对于 Microsoft Windows XP 专业人员,安装此修补程序,描述的 Microsoft 知识库中文章 919477。 有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
919477如果代理服务器自动配置用于 Windows XP 中的 Internet Explorer 连接 WinHTTP 不可能连接通过代理服务器

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。 Windows Server 2003 Service Pack 2 中,第一次已得到纠正此问题。

更多信息

当有多个可用的证书的客户端连接到要求的证书的服务器时,客户端无法知道哪些证书请求的服务器。客户端必须手动请尝试每个证书,直到客户端查找服务器接受的证书。

此修补程序提供了一个新的 Windows HTTP 服务 (WinHTTP) 选项,以便从服务器请求证书信息,以便客户端可以显示正确的证书。

注意94 标头值的新的选项。

该代码示例为新的 Windows HTTP 服务 (WinHTTP) 选项非常类似于以下 code.
//Here is the header value.
#define WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST 94
//Here is a sample usage for the new option WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST.
#include <schannel.h>
SecPkgContext_IssuerListInfoEx* pIssuerList = NULL;
DWORD dwBufferSize = sizeof(SecPkgContext_IssuerListInfoEx*);
If (WinHttpQueryOption(hRequest,
                       WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST,
                       &pIssuerList,
                       & dwBufferSize) == TRUE)
{
            // TODO: insert code to use / filter the issuer list
            GlobalFree(pIssuerList); // free the issuer list when done
}

//Here is a sample usage of the issuer list retrieved from above. The example finds the certificate in the certificate store that matches the issuer list.

PCERT_CONTEXT pClientCert = NULL;
CERT_CHAIN_FIND_BY_ISSUER_PARA SrchCriteria;
::ZeroMemory(&SrchCriteria, sizeof(CERT_CHAIN_FIND_BY_ISSUER_PARA));
SrchCriteria.cbSize = sizeof(CERT_CHAIN_FIND_BY_ISSUER_PARA);
SrchCriteria.cIssuer = pIssuerList->cIssuers;
SrchCriteria.rgIssuer = pIssuerList->aIssuers;
PCCERT_CHAIN_CONTEXT pClientCertChain = 
CertFindChainInStore(
    pCacheEntry->_ClientCertStore,
        X509_ASN_ENCODING,
        CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG |
            // Do not perform wire download when building chains
        CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG,
            // Do not search pCacheEntry->_ClientCertStore 
            // for issuer certificates
        CERT_CHAIN_FIND_BY_ISSUER,
        &SrchCriteria,
        NULL);
if (pClientCertChain)
{
pClientCert = 
    pClientCertChain->rgpChain[0]->rgpElement[0]->pCertContext;
     CertDuplicateCertificateContext(pClientCert);
     CertFreeCertificateChain(pClientCertChain);
     pClientCertChain = NULL;
     fRet = TRUE;
}
详细的信息,请访问下面的 Microsoft 开发人员网络 (MSDN) Web 站点:
http://msdn2.microsoft.com/en-us/library/aa384066.aspx

属性

文章编号: 909425 - 最后修改: 2007年10月11日 - 修订: 4.3
这篇文章中的信息适用于:
  • Microsoft Windows Server 2003 Service Pack 1?当用于
    • Microsoft Windows Server 2003 Datacenter Edition
    • Microsoft Windows Server 2003 Enterprise Edition
    • Microsoft Windows Server 2003 Standard Edition
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows XP Service Pack 2?当用于
    • Microsoft Windows XP Professional Edition
关键字:?
kbmt kbautohotfix kbwinserv2003sp2fix kbfix kbbug kbhotfixserver kbqfe KB909425 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 909425
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com