Impossible d'utiliser libcurl pour accéder à un site nécessitant l'authentification du client

Je suis en utilisant le ci-dessous ciselée pour le réglage du certificat et de la clé pour l'authentification du client.

  curl_easy_setopt(curl,CURLOPT_SSLCERT,"clientCert.pem");
  curl_easy_setopt(curl,CURLOPT_SSLCERTPASSWD,"changeit");
  curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"PEM");
  curl_easy_setopt(curl,CURLOPT_SSLKEY,"privateKey.pem");
  curl_easy_setopt(curl,CURLOPT_SSLKEYPASSWD,"changeit");
  curl_easy_setopt(curl,CURLOPT_SSLKEYTYPE,"PEM");

Le certificat n'a pas un mot de passe, je ne sais pas pourquoi sur la terre l'option SSLCERTPASSWD existe, je l'ai juste fourni une valeur factice.
Quand je lance le programme sur Linux, je reçois un code d'erreur de 58 et un message d'erreur
impossible de définir le fichier de clé privée: 'privateKey.pem' type PEM

Sur Windows mais j'ai
incapables d'utiliser le certificat du client (pas de clé ou mauvais mot de passe?)

Il semble suggérer le certificat et la clé ne correspondent pas, mais je ne sais pas comment. J'ai extrait les deux le cert et la clé à partir d'un fichier p12 à l'aide de commandes.
La commande que j'ai utilisé pour extraire la clé est

openssl.exe pkcs12 -in client.p12 -nocerts -out privateKey.pem

et la commande utilisée pour extraire le cert est

openssl.exe pkcs12 -in client.p12 -nokeys -out clientCert.pem

Le fichier p12 a été utilisé avec succès dans un navigateur pour accéder à l'authentification du client de l'url.
S'il vous plaît aider avant que je tire moi-même.

Edit:
Ici est la preuve que la clé privée et du certificat correspondant à chacune des autres:

[debugbld@nagara ~/curlm]$ openssl x509 -noout -modulus -in clientCert.pem | openssl md5
d7207cf82b771251471672dd54c59927

[debugbld@nagara ~/curlm]$ openssl rsa -noout -modulus -in privateKey.pem | openssl md5
Enter pass phrase for privateKey.pem:
d7207cf82b771251471672dd54c59927

Alors pourquoi ne peut-il pas travailler?

Je suis confronté au même résultat avec la ligne de commande curl. J'ai concaténé le certificat du client et la clé dans un fichier et essayé comme ci-dessous: curl --cert concatenatedCert.pem --cert-type PEM --cacert cabundle.crt inaveo:8775/DataIntegrationService/WebService/WS_test Enter PEM pass phrase: curl: (58) impossible de définir le fichier de clé privée: 'concatenatedCert.pem' type PEM

OriginalL'auteur Hugh Darling | 2011-05-25