Ssl 使用WinInet的客户端身份验证(证书和私钥)

Ssl 使用WinInet的客户端身份验证(证书和私钥),ssl,authentication,certificate,windows,c++,Ssl,Authentication,Certificate,Windows,C++,我正在尝试使用WinInet(来自Win32 API)以https与服务器通信 下面是一个非常简单的代码: HINTERNET ses = InternetOpenA("test",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0) ; HINTERNET con = InternetConnectA(ses,"stackoverflow.com",INTERNET_DEFAULT_HTTPS_PORT,NULL,NULL,INTERNET_SERVICE_HTTP,0

我正在尝试使用WinInet(来自Win32 API)以https与服务器通信

下面是一个非常简单的代码:

HINTERNET ses = InternetOpenA("test",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0) ;
HINTERNET con = InternetConnectA(ses,"stackoverflow.com",INTERNET_DEFAULT_HTTPS_PORT,NULL,NULL,INTERNET_SERVICE_HTTP,0,NULL) ;
HINTERNET req = HttpOpenRequestA(con,"GET",NULL,NULL,NULL,NULL,INTERNET_FLAG_SECURE,NULL) ;
HttpSendRequestA(req,NULL,0,NULL,0) ;
DWORD read ;
char  str[3000] ;
InternetReadFile(req,reinterpret_cast<void*>(str),sizeof(str)-1,&read);
str[read] = 0 ;
cout << &str[0] << endl ;
HINTERNET ses=InternetOpenA(“测试”,互联网开放类型,直接,空,空,0);
HINTERNET con=InternetConnectA(ses,“stackoverflow.com”,互联网默认HTTPS端口,NULL,NULL,互联网服务HTTP,0,NULL);
HINTERNET req=HttpOpenRequestA(con,“GET”,NULL,NULL,NULL,NULL,INTERNET\u标志\u安全,NULL);
HttpSendRequestA(请求,空,0,空,0);
德沃德·里德;
char-str[3000];
InternetReadFile(请求、重新解释转换(str)、大小(str)-1和读取);
str[read]=0;

听起来好像您正试图通过客户端提供的证书与需要相互身份验证的Web服务器通信。这听起来像你要做的吗?看起来像是编程问题,而不是安全问题。我们在StackOverflow的朋友更适合回答这个问题。我正在投票将它移到那里。可能重复的是,这是前一个问题的完全重复!对此很抱歉:我在security.stackexchange.com上重新发布了它,因为它似乎更注重安全性。但最后,我的问题对他们来说太多了。所以它被移回了这里。。。不过,我在操作过程中对其进行了一些更新。听起来好像您正试图通过客户端提供的证书与需要相互验证的Web服务器通信。这听起来像你要做的吗?看起来像是编程问题,而不是安全问题。我们在StackOverflow的朋友更适合回答这个问题。我正在投票将它移到那里。可能重复的是,这是前一个问题的完全重复!对此很抱歉:我在security.stackexchange.com上重新发布了它,因为它似乎更注重安全性。但最后,我的问题对他们来说太多了。所以它被移回了这里。。。不过,我在操作过程中对其进行了一些更新。