none
[wininet] authentification d'un client avec 2 certificats et une clef privée RRS feed

  • Question

  • 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 !


    lundi 25 mars 2019 17:10

Réponses