PHP - 使用cURL访问受HTTPS(SSL)保护的站点

The following code returns Exit code 58.

From cURL documentation: CURLE_SSL_CERTPROBLEM (58) problem with the local client certificate.

// create a new CURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_HEADER, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

curl_setopt($ch, CURLOPT_SSLCERT, getcwd() . $CERT);
curl_setopt($ch, CURLOPT_SSLCERTPASSWD,"XXXXX");

curl_setopt($ch, CURLOPT_SSLVERSION, 3);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content Type: text/xml',
    'User-Agent: XXXXX',
    'User-Name: XXXXX'
));

$RESPONSE = curl_exec($ch);  

var_dump($RESPONSE);

// close CURL resource, and free up system resources
curl_close($ch);

Is there something I'm missing?

Make sure the file in getcwd() . $CERT exists and is a valid PEM certificate. If it seems ok, set the following option to get more SSL certification details output to STDERR:

curl_setopt($ch, CURLOPT_CERTINFO, true);

Note that this setting only has effect if CURLOPT_VERBOSE is set to true, which you already have.

problem with the local client certificate

hmm a bit vague. Seems to mean Curl doen't like the certificate, rather than the remote system doesn't like it. Is it in PEM format? Public and private keys in certificate? Readable by webserver uid?