查詢

openssl_x509_verify()函式—用法及示例

「 驗證給定的證書是否正確 」


函式名稱:openssl_x509_verify()

適用版本:PHP 4 >= 4.0.6, PHP 5, PHP 7

函式描述:openssl_x509_verify() 函式用於驗證給定的證書是否正確。

語法:int openssl_x509_verify(resource $certificate [, mixed $certificateAuthority = null [, array &$errorList = array() [, string $crlFile = null [, int $flags = 0 [, string $untrustedFile = null]]]]])

引數:

  • $certificate: 要驗證的證書資源。
  • $certificateAuthority: 證書頒發機構的證書鏈,可以是單個證書或證書陣列。如果未提供該引數,則驗證將使用系統中已安裝的證書頒發機構。
  • $errorList: 一個包含驗證錯誤的陣列。如果驗證成功,則該陣列將為空。
  • $crlFile: 證書吊銷列表檔案(CRL)的路徑。如果不需要使用CRL,則可以省略。
  • $flags: 可選引數,用於指定驗證的標誌。預設為0,表示驗證所有證書。
  • $untrustedFile: 可選引數,用於指定不受信任的證書列表檔案的路徑。如果不需要使用該列表,則可以省略。

返回值:驗證成功返回1,驗證失敗返回0,發生錯誤返回-1。

示例:

// 讀取要驗證的證書
$certificate = file_get_contents('certificate.pem');

// 讀取證書頒發機構的證書鏈
$certificateAuthority = file_get_contents('ca_certificate.pem');

// 驗證證書
$result = openssl_x509_verify($certificate, $certificateAuthority);

if ($result === 1) {
    echo "證書驗證成功!";
} elseif ($result === 0) {
    echo "證書驗證失敗!";
} else {
    echo "證書驗證發生錯誤!";
}

注意事項:

  • 要驗證的證書必須是有效的X.509證書。
  • 如果未提供證書頒發機構的證書鏈,則驗證將使用系統中已安裝的證書頒發機構。
  • 如果需要使用證書吊銷列表檔案(CRL)或不受信任的證書列表檔案,則可以指定相應的檔案路徑。
  • 在驗證過程中,可以透過引用傳遞$errorList引數來獲取驗證錯誤的詳細資訊。
  • 需要確保伺服器上已啟用OpenSSL擴充套件。
補充糾錯
下一個函式: openssl_x509_read()函式
熱門PHP函式
分享連結