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?
PHP 5.3中的默认CA证书位置
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
douxie1894 2018-05-14 21:18关注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);本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报