Bonjour,
je cherche à me connecter à un serveur qui demande une authentification client.
J'ai le certificat du client ainsi que sa clef privée, et j'ai le certificat racine qui authentifie le certificat du client (sous forme de 3 fichiers PEM).
Pour l'instant j'ai un code qui s'appuie sur wininet et qui fonctionne avec des serveurs https "classiques".
HINTERNET ses = InternetOpenA("test",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0) ;
HINTERNET con = InternetConnectA(ses,"social.msdn.microsoft.com",INTERNET_DEFAULT_HTTPS_PORT,NULL,NULL,INTERNET_SERVICE_HTTP,0,NULL) ;
HINTERNET req = HttpOpenRequestA(con,"GET","/Forums/fr-FR/home",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 ;
Pour information, j'arrive à me connecter avec la ligne de commande cURL suivante :
curl https://my.server
--cert Client_cert.pem --key Client_key.pem --cacert Root_cert.pem
Ma question : comment faire évoluer mon code pour qu'il prenne en compte mes 2 certificats et ma clef privée ?
Merci d'avance !