Connection SSL par CURL ?
Résolu
Ronieee
Messages postés
70
Date d'inscription
Statut
Membre
Dernière intervention
-
Ronieee Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
Ronieee Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je viens de télécharger la librairie libcurl me permettant d'effectuer des connections SSL a travers mon programme C++.
J'ai réussi à créer des connections simple par protocole HTTP, mais lorsque je dois en faire par HTTPS (par SSL), le programme n'arrive a rien et j'obtiens l'erreur :
Unsupported Protocol
Est-ce que quelqu'un aurait une idée pour m'aider a avancer ?
Je n'arrive pas non plus a faire marcher le code exemple présent avec la librairie :
curl = curl_easy_init();
if(curl) {
/* what call to write: */
curl_easy_setopt(curl, CURLOPT_URL, "HTTPS://your.favourite.ssl.site");
curl_easy_setopt(curl, CURLOPT_WRITEHEADER, headerfile);
while(1) /* do some ugly short cut... */
{
if (pEngine) /* use crypto engine */
{
if (curl_easy_setopt(curl, CURLOPT_SSLENGINE,pEngine) != CURLE_OK)
{ /* load the crypto engine */
fprintf(stderr,"can't set crypto engine\n");
break;
}
if (curl_easy_setopt(curl, CURLOPT_SSLENGINE_DEFAULT,1L) != CURLE_OK)
{ /* set the crypto engine as default */
/* only needed for the first time you load
a engine in a curl object... */
fprintf(stderr,"can't set crypto engine as default\n");
break;
}
}
/* cert is stored PEM coded in file... */
/* since PEM is default, we needn't set it for PEM */
curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"PEM");
/* set the cert for client authentication */
curl_easy_setopt(curl,CURLOPT_SSLCERT,pCertFile);
/* sorry, for engine we must set the passphrase
(if the key has one...) */
if (pPassphrase)
curl_easy_setopt(curl,CURLOPT_KEYPASSWD,pPassphrase);
/* if we use a key stored in a crypto engine,
we must set the key type to "ENG" */
curl_easy_setopt(curl,CURLOPT_SSLKEYTYPE,pKeyType);
/* set the private key (file or ID in engine) */
curl_easy_setopt(curl,CURLOPT_SSLKEY,pKeyName);
/* set the file with the certs vaildating the server */
curl_easy_setopt(curl,CURLOPT_CAINFO,pCACertFile);
/* disconnect if we can't validate server's cert */
curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,1L);
res = curl_easy_perform(curl);
break; /* we are done... */
}
/* always cleanup */
curl_easy_cleanup(curl);
}
curl_global_cleanup();
Est-ce que j'aurais oublié de configurer quelque chose ?
J'ai gardé les même configurations de compilation entre les différents protocol, le pbleme viendrait-il de là ?
Merci d'avance.
je viens de télécharger la librairie libcurl me permettant d'effectuer des connections SSL a travers mon programme C++.
J'ai réussi à créer des connections simple par protocole HTTP, mais lorsque je dois en faire par HTTPS (par SSL), le programme n'arrive a rien et j'obtiens l'erreur :
Unsupported Protocol
Est-ce que quelqu'un aurait une idée pour m'aider a avancer ?
Je n'arrive pas non plus a faire marcher le code exemple présent avec la librairie :
curl = curl_easy_init();
if(curl) {
/* what call to write: */
curl_easy_setopt(curl, CURLOPT_URL, "HTTPS://your.favourite.ssl.site");
curl_easy_setopt(curl, CURLOPT_WRITEHEADER, headerfile);
while(1) /* do some ugly short cut... */
{
if (pEngine) /* use crypto engine */
{
if (curl_easy_setopt(curl, CURLOPT_SSLENGINE,pEngine) != CURLE_OK)
{ /* load the crypto engine */
fprintf(stderr,"can't set crypto engine\n");
break;
}
if (curl_easy_setopt(curl, CURLOPT_SSLENGINE_DEFAULT,1L) != CURLE_OK)
{ /* set the crypto engine as default */
/* only needed for the first time you load
a engine in a curl object... */
fprintf(stderr,"can't set crypto engine as default\n");
break;
}
}
/* cert is stored PEM coded in file... */
/* since PEM is default, we needn't set it for PEM */
curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"PEM");
/* set the cert for client authentication */
curl_easy_setopt(curl,CURLOPT_SSLCERT,pCertFile);
/* sorry, for engine we must set the passphrase
(if the key has one...) */
if (pPassphrase)
curl_easy_setopt(curl,CURLOPT_KEYPASSWD,pPassphrase);
/* if we use a key stored in a crypto engine,
we must set the key type to "ENG" */
curl_easy_setopt(curl,CURLOPT_SSLKEYTYPE,pKeyType);
/* set the private key (file or ID in engine) */
curl_easy_setopt(curl,CURLOPT_SSLKEY,pKeyName);
/* set the file with the certs vaildating the server */
curl_easy_setopt(curl,CURLOPT_CAINFO,pCACertFile);
/* disconnect if we can't validate server's cert */
curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,1L);
res = curl_easy_perform(curl);
break; /* we are done... */
}
/* always cleanup */
curl_easy_cleanup(curl);
}
curl_global_cleanup();
Est-ce que j'aurais oublié de configurer quelque chose ?
J'ai gardé les même configurations de compilation entre les différents protocol, le pbleme viendrait-il de là ?
Merci d'avance.
A voir également:
- Connection SSL par CURL ?
- Gmail connection - Guide
- Facebook connection - Guide
- Connection chromecast - Guide
- Télécharger sans chiffrement ssl - Forum Réseaux sociaux
- Https //www.google.com/ gws_rd=ssl ✓ - Forum Virus