7
votes

En utilisant libcurl & ssl

J'ai trouvé qu'il y a vraiment très peu d'informations sur ce sujet. J'ai déjà une DLL en train de faire des messages réussi à l'aide de libcurl.

J'ai compilé libcurl avec OpenSSL pour la fonctionnalité SSL. P>

Voici un exercice de ma configuration de courroie d'origine. P>

    curl_easy_setopt(handle, CURLOPT_ERRORBUFFER, errorBuffer);

    //curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER , 1);
    //curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST , 1);
    //curl_easy_setopt(curl, CURLOPT_CAINFO , "./ca.cert");

    curl_easy_setopt(handle, CURLOPT_POSTFIELDS, cParam); 
    curl_easy_setopt(handle, CURLOPT_POSTFIELDSIZE, strlen(cParam));
    curl_easy_setopt(handle, CURLOPT_FOLLOWLOCATION, 1);
    curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, Request::writer);   
    curl_easy_setopt(handle, CURLOPT_WRITEDATA, &buffer); 
    curl_easy_setopt(handle, CURLOPT_URL, cURL);


3 Réponses :


3
votes

Oui, c'est aussi simple. Assurez-vous simplement que le fichier "CA.CERT" que vous avez est un certificat CA VRAI CAN permettant de vérifier le certificat de votre serveur.


2 commentaires

Où obtenez-vous ce fichier ca.cert de? Parce que sous Windows, THX à Chrome -> Options de développeur -> Sécurité Je ne suis que capable d'exporter .cer (sans "T").


Si vous souhaitez faire confiance au même CAS que Firefox Trusts, vous pouvez obtenir un ensemble de CA Cert de ici



1
votes

Tout ce que vous avez à faire pour utiliser SSL avec libcurl est une URL HTTPS au lieu d'une URL HTTP. La seule option que vous devez définir avec curl_easy_setopt est curlopt_url, bien qu'elle n'imprime que les données reçues à STDOUT si vous ne spécifiez pas de rappel écrit.

CURL *handle = curl_easy_init();
char url[] = "https://google.com";
curl_easy_setopt(handle, CURLOPT_URL, url);
curl_easy_perform(handle);


0 commentaires

0
votes

Assurez-vous que lorsque vous utilisez curlopt_ssl_verifyhost , vous définissez la valeur réelle sur 2L (qui correspond à la valeur par défaut) au lieu de 1 (comme indiqué comme un commentaire dans cet exemple), si vous voulez vraiment vérifier le correspond à des correspondances de nom d'hôte, sinon, il suffirait de vérifier l'existence d'un "nom commun" (CN) dans le certificat.


0 commentaires