Hello,

I am trying to use libcurl in C to connect a site that uses client SSL
authentication.
I can acheive this task with curl, but not libcurl.

Successful example with curl
$ curl -vv -E cert.pem https://someURL
* About to connect() to someURL port 443 (#0)
*   Trying 1.2.3.4... connected
* Connected to someURL (1.2.3.4) port 443 (#0)
Enter PEM pass phrase:
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
....
....
...
Webpages dowloads succesfully and I can see some debuging output I added in
PHP verifying that the client certificate was used.

I have taken the simplessl.c example from the your site and changed only the
following lines so far.

const char *pPassphrase = "<PASSWORD SET HERE>";
static const char *pCertFile = "cert.pem";
static const char *pCACertFile="cert.pem";
pKeyName  = "cert.pem";
pKeyType  = "PEM";
pEngine   = NULL;
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);

The result of this is as follows
$ gcc -lcurl simplessl.c
$ ./a.out
* About to connect() to https://someURL port 443 (#0)
*   Trying 1.2.3.4... * connected
* Connected to someURL (1.2.3.4) port 443 (#0)
* found 142 certificates in /etc/ssl/certs/ca-certificates.crt
* error reading X.509 key or certificate file
* Closing connection #0
* SSL connect error
curl_easy_perform() failed: SSL connect error

I would greatly appreciate any help or advice you may be able to give.
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to