查詢

openssl_pkcs7_read()函式—用法及示例

「 從 PKCS#7 格式的檔案中讀取證書和 CRL 」


函式名稱: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。
補充糾錯
上一個函式: openssl_pkcs7_sign()函式
下一個函式: openssl_pkcs7_encrypt()函式
熱門PHP函式
分享連結