查询

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函数
分享链接