运行时配置

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

openssl 配置选项
名称 默认值 可更改 变更日志
openssl.cafile "" INI_PERDIR  
openssl.capath "" INI_PERDIR  
有关 INI_* 模式更详细的定义,请参阅 配置设置的设置位置

以下是配置指令的简短解释。

openssl.cafile string

本地文件系统上证书颁发机构文件的位置,应与 verify_peer 上下文选项一起使用以验证远程对等方的身份。

openssl.capath string

如果未指定 cafile 或证书未在其中找到,则会搜索 capath 指向的目录以查找合适的证书。capath 必须是正确散列的证书目录。

另请参阅 SSL 流上下文 选项。

添加注释

用户贡献的注释 3 条注释

1
mmi at uhb-consulting dot de
6 年前
在 capath 中,证书必须以证书散列为名称和 .0 作为结尾。

以下是如何从位于此文件夹中的证书中获取散列,并以正确的方式自动重命名它们:
<?php
$paths
=openssl_get_cert_locations();
$allowed=array("cer","crt","pem");
if (!empty(
$paths['ini_capath'])){
$capathDirectory = dir($paths['ini_capath']);
while (
false !== ($entry = $capathDirectory->read())) {
$Sourcefile=$paths['ini_capath']."/".$entry;
if (
file_exists( $Sourcefile)){
$path_parts = pathinfo($Sourcefile);
if (
in_array(strtolower($path_parts['extension']),$allowed)){
$ParsedCertificatePbject = openssl_x509_parse(file_get_contents($Sourcefile));
$Sourcefile= $ParsedCertificatePbject["hash"].".0";
$TargetFilename = dirname($Sourcefile)."/".$Sourcefile;
if (!
file_exists($TargetFilename)) {
rename ($Sourcefile ,$TargetFilename);
}
}
}
}
$capathDirectory->close();
}
?>
0
ofrick at bluewin dot ch
6 年前
上面的代码应该修正为

$Destfile= $ParsedCertificatePbject["hash"].".0";
$TargetFilename = dirname($Sourcefile)."/".$Destfile;
-19
mmi at uhb-consulting dot de
6 年前
散列目录意味着文件名必须与使用 openssl_x509_parse 在 hash 值中获得的 Openssl 散列(名称)+ 文件扩展名 0 一致。
对于重复的 HASH 值,文件扩展名将递增。
To Top