Https 为什么WinHttp不发送带有链的客户端证书?

Https 为什么WinHttp不发送带有链的客户端证书?,https,certificate,winhttp,Https,Certificate,Winhttp,我正在开发一个客户机-服务器应用程序,其中服务器是基于SSL客户机证书执行客户机身份验证的web服务。客户端证书由根CA->Intermedia-CA-1->Intermedia-CA-2颁发。我将证书导入了用户证书存储和证书机器存储 使用WinHttpSetOption(请求、WINHTTP_选项、客户端证书上下文、(LPVOID)pCertCtx、sizeof(*pCertCtx))设置客户端证书 当从用户存储区搜索pCertCtx时,WinHttp同时发送客户端证书和中间CA 但是,当从本

我正在开发一个客户机-服务器应用程序,其中服务器是基于SSL客户机证书执行客户机身份验证的web服务。客户端证书由根CA->Intermedia-CA-1->Intermedia-CA-2颁发。我将证书导入了用户证书存储和证书机器存储

使用WinHttpSetOption(请求、WINHTTP_选项、客户端证书上下文、(LPVOID)pCertCtx、sizeof(*pCertCtx))设置客户端证书

当从用户存储区搜索pCertCtx时,WinHttp同时发送客户端证书和中间CA

但是,当从本地计算机存储或内存中的证书存储搜索pCertCtx时,WinHttp只发送客户端证书,不发送中间CA


为什么WinHttp在这些方面有不同的行为?是否有强制WinHttp始终同时发送证书和链的选项?

通过将中间ca添加到计算机存储解决