composer/ca-bundle

帮助您找到系统CA证书库的路径,并包含对Mozilla CA证书库的回退。

1.5.1 2024-07-08 15:28 UTC

README

这是一个小型的实用程序库,让您找到系统CA证书库的路径,并包含对Mozilla CA证书库的回退。

最初作为composer/composer的一部分编写,现在已提取并作为一个独立的库提供。

安装

使用以下命令安装最新版本

$ composer require composer/ca-bundle

需求

  • 需要PHP 5.3.2,但强烈推荐使用PHP的最新版本。

基本用法

Composer\CaBundle\CaBundle

  • CaBundle::getSystemCaRootBundlePath():返回系统CA证书库路径,或回退到捆绑的路径
  • CaBundle::getBundledCaBundlePath():返回捆绑CA文件的路径
  • CaBundle::validateCaFile($filename):使用openssl_x509_parse验证CA文件,仅当安全使用时
  • CaBundle::isOpensslParseSafe():测试是否安全使用PHP函数openssl_x509_parse()
  • CaBundle::reset():重置静态缓存

与curl一起使用

$curl = curl_init("https://example.org/");

$caPathOrFile = \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath();
if (is_dir($caPathOrFile)) {
    curl_setopt($curl, CURLOPT_CAPATH, $caPathOrFile);
} else {
    curl_setopt($curl, CURLOPT_CAINFO, $caPathOrFile);
}

$result = curl_exec($curl);

与php streams一起使用

$opts = array(
    'http' => array(
        'method' => "GET"
    )
);

$caPathOrFile = \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath();
if (is_dir($caPathOrFile)) {
    $opts['ssl']['capath'] = $caPathOrFile;
} else {
    $opts['ssl']['cafile'] = $caPathOrFile;
}

$context = stream_context_create($opts);
$result = file_get_contents('https://example.com', false, $context);

与Guzzle一起使用

$client = new \GuzzleHttp\Client([
    \GuzzleHttp\RequestOptions::VERIFY => \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath()
]);

许可证

composer/ca-bundle在MIT许可证下许可,有关详细信息,请参阅LICENSE文件。