PHP Conference China 2020


这些函数的行为受 php.ini 中的设置影响。

openssl 配置选项
名字 默认 可修改范围 Changelog
openssl.cafile "" PHP_INI_PERDIR 自PHP 5.6.0起可用。
openssl.capath "" PHP_INI_PERDIR 自PHP 5.6.0起可用。
有关 PHP_INI_* 样式的更多详情与定义,见 配置可被设定范围


openssl.cafile string

本地文件系统上证书颁发机构文件的位置, 被用来和对等校验上下文选项一起校验远程对等方的身份。

openssl.capath string

如果没有制定证书颁发机构文件或者证书找不到,将在由capath指向的目录下搜索一个合适的证书。capath 必须是一个正确的已被散列的证书目录。

参见 SSL stream context 选项。

add a note add a note

User Contributed Notes 3 notes

ofrick at bluewin dot ch
2 years ago
above code should be corrected to:

                    $Destfile= $ParsedCertificatePbject["hash"].".0";
                    $TargetFilename = dirname($Sourcefile)."/".$Destfile;
mmi at uhb-consulting dot de
2 years ago
in capath the Certificates must be placed with the certificates hash as name and .0 as Ending.

Here is how to get the hashes from Certificates lying in this folder and automatically rename them in a correct way:
    if (!empty(
$capathDirectory = dir($paths['ini_capath']);
        while (
false !== ($entry = $capathDirectory->read())) {
            if (
file_exists( $Sourcefile)){
$path_parts = pathinfo($Sourcefile);
                if (
$ParsedCertificatePbject = openssl_x509_parse(file_get_contents($Sourcefile));
$Sourcefile= $ParsedCertificatePbject["hash"].".0";
$TargetFilename = dirname($Sourcefile)."/".$Sourcefile;
                    if (!
file_exists($TargetFilename)) {
rename ($Sourcefile ,$TargetFilename);
mmi at uhb-consulting dot de
2 years ago
Hashed directory bedeutet die Dateinamen müssen mit dem Openssl hash, den ihr mittels openssl_x509_parse im Wert hash bekommt (Name) + die Dateiendung 0.
Bei doppelten HASH werten wird die Dateiendung incrementiert.
To Top