函式名稱:openssl_pkcs7_read()
函式描述:openssl_pkcs7_read() 函式從 PKCS#7 格式的檔案中讀取證書和 CRL。
適用版本:PHP 4 >= 4.0.6, PHP 5, PHP 7
用法:openssl_pkcs7_read(string $filename, array &$certs, array &$crls) : bool
引數:
- $filename:PKCS#7 格式的檔案路徑。
- &$certs:用於儲存證書的陣列。
- &$crls:用於儲存 CRL(證書吊銷列表)的陣列。
返回值:成功時返回 true,失敗時返回 false。
示例:
$filename = 'path/to/pkcs7.p7b';
$certs = [];
$crls = [];
if (openssl_pkcs7_read($filename, $certs, $crls)) {
echo "證書數量:" . count($certs) . "\n";
foreach ($certs as $cert) {
echo "證書內容:\n" . openssl_x509_export($cert) . "\n";
}
echo "CRL 數量:" . count($crls) . "\n";
foreach ($crls as $crl) {
echo "CRL 內容:\n" . openssl_crl_export($crl) . "\n";
}
} else {
echo "讀取 PKCS#7 檔案失敗。\n";
}
注意事項:
- 該函式需要 OpenSSL 擴充套件的支援,確保 PHP 安裝了 OpenSSL 擴充套件。
- PKCS#7 檔案通常使用 .p7b 或 .p7c 副檔名。
- 證書和 CRL 會以 X.509 格式返回,可以使用 openssl_x509_export() 和 openssl_crl_export() 函式進一步處理。
- 如果 PKCS#7 檔案中包含多個證書或 CRL,它們會被依次儲存在 $certs 和 $crls 陣列中。可以透過遍歷陣列來處理每個證書或 CRL。