2010-10-20 31 views
2

Actuellement, nous lisons à partir de HTTPS à l'aide de cURL. Tout fonctionne bien.Modification des certificats SSL vers un emplacement différent

Nous avons mis en place en boucle comme Offrir un chèque suit:

curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"PEM"); 
curl_easy_setopt(curl,CURLOPT_SSLCERT,"/etc/ssl/certs/abc.cert.pem"); 

curl_easy_setopt(curl,CURLOPT_SSLKEYTYPE,"PEM"); 
curl_easy_setopt(curl,CURLOPT_SSLKEY,"/etc/ssl/certs/abc.key.pem"); 

Maintenant, nous voulons déplacer ces fichiers de certificat dans un répertoire différent. Même si je change le chemin dans les commandes ci-dessus cela ne fonctionne pas parce que je pense que le chemin du certificat est codé en dur comme/etc/ssl dans libcurl.

Basé sur googler J'ai essayé d'ajouter d'abord,

curl_easy_setopt(curl, CURLOPT_CAPATH, "/MyDir/"); 

puis les quatre lignes avec le chemin relatif correct. Ça n'a pas marché.

Comment changer le chemin (le répertoire où les certificats sont stockés) en quelque chose que je veux. Un exemple ou une explication sera apprécié.

Merci

James

Répondre

5

Non, il n'y a pas de chemins d'accès directement pour les certificats clients du tout libcurl, votre théorie est incorrecte.

Mais votre mélange de l'option CURLOPT_SSLCERT (qui est pour les certificats clients) et l'option CURLOPT_CAPATH (qui est pour CA certs) dans la même question ici, pourrait impliquer que vous avez mal compris ce que les options sont vraiment et à faire. Le capath/bundle a une valeur par défaut codée en dur dans libcurl, mais vous pouvez toujours définir votre préféré avec l'une des options CA *.