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: <?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();
} ?>
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.
Коментарии
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:
<?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();
}
?>
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.
above code should be corrected to:
$Destfile= $ParsedCertificatePbject["hash"].".0";
$TargetFilename = dirname($Sourcefile)."/".$Destfile;