阅读量:0
要验证PHP KeyStore中的证书,您需要使用OpenSSL扩展。以下是一个简单的示例,说明如何使用PHP和OpenSSL验证证书:
- 首先,确保您的系统上已安装了OpenSSL扩展。在大多数Linux发行版中,您可以使用以下命令安装:
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."消息。如果证书验证失败,您将看到相应的错误消息。