PHP 5.3中的默认CA证书位置

How can I find the default CA certificate locations used by PHP 5.3? In PHP 5.6 and above, there is the function openssl_get_cert_locations that can answer this question. But what would be the equivalent in PHP 5.3?

As of PHP 5.6 it will automatically determine where your CA certificates are located. Ideally you should update to a newer version of PHP (7.1 would be a good target to upgrade to).

Here are the links to the specific RFCs which cover the topic in more depth and explain why and how the changes were made in PHP >= 5.6:

For anything before PHP 5.6 you'll need to manually specify them (either by locating them yourself and manually specifying them or download a prepackaged set from a source like https://curl.haxx.se/ca/cacert.pem and add it to your code repository).

Then manually specify it in your code like this:

// Using cURL
curl_setopt($curl, CURLOPT_CAINFO, 'path/to/cafile');

// or using file_get_contents
$context = stream_context_create([
    'ssl' => [
        'verify_peer' => true,
        'cafile'      => 'path/to/cafile',
        'CN_match'    => '[domain-you-are-contecting-to]'
    ]
]);
file_get_contents($url, false, $context);