要验证PHP KeyStore中的证书,您需要使用OpenSSL扩展。以下是一个简单的示例,说明如何使用PHP和OpenSSL验证证书:
sudo apt-get install php-openssl
verify_certificate.php
的PHP脚本,并将以下内容粘贴到其中:<?php
// 证书文件路径
$cert_file = 'path/to/your/certificate.pem';
// 要验证的证书文件路径
$ca_cert_file = 'path/to/your/ca_certificate.pem';
// 要验证的证书文件路径
$client_cert_file = 'path/to/your/client_certificate.pem';
// 要验证的私钥文件路径
$client_key_file = 'path/to/your/client_private_key.pem';
// 要验证的证书主题
$subject = 'CN=example.com'; // 例如:CN=www.example.com
// 初始化SSL上下文
$context = stream_context_create([
'ssl' => [
'verify_peer' => true,
'verify_peer_name' => true,
'allow_self_signed' => false,
'cafile' => $ca_cert_file,
'local_cert' => $client_cert_file,
'local_pk' => $client_key_file,
],
]);
// 尝试建立SSL连接
$socket = fsockopen('ssl://www.example.com', 443, $errno, $errstr, 30);
if (!$socket) {
echo "Error: $errstr ($errno)";
} else {
// 关闭SSL连接
fclose($socket);
// 验证证书
$certInfo = openssl_x509_parse($client_cert_file);
if (isset($certInfo['subject']['commonName']) && $certInfo['subject']['commonName'] == $subject) {
echo "Certificate is valid.";
} else {
echo "Certificate is invalid.";
}
}
?>
修改脚本中的证书文件路径和主题,以匹配您的实际情况。
在命令行中运行脚本:
php verify_certificate.php
如果证书验证成功,您将看到"Certificate is valid."消息。如果证书验证失败,您将看到相应的错误消息。