我有一个证书(.cer),我必须阅读该证书的基本信息,例如到期日期.
我用php编写了这段代码
class FirmaElectronica {
public function abrirCertificado( $path ){
$cert_content = file_get_contents( $path );
$res = openssl_x509_read( $cert_content );
$data = openssl_x509_parse( $res );
var_dump( $data );
}
}
$firma = new FirmaElectronica();
$firma->abrirCertificado('gohl881206rga.cer');
但总是会收到此警告和一个空数据数组
PHP Warning: openssl_x509_read(): supplied parameter cannot be coerced into an X509 certificate!
如果执行此命令,我将获取所有证书数据
openssl x509 -in gohl881206rga.cer -noout -text -inform der
用php获取证书数据的正确方法是什么?
解决方法:
include('File/X509.php');
$x509 = new File_X509();
$cert = $x509->loadX509('...');
echo $cert['tbsCertificate']['validity']['notBefore'] . "\r\n";
echo $cert['tbsCertificate']['validity']['notAfter'];
如果这样不起作用,您可以发布您想要从中获取此信息的实际证书吗?
标签:ssl,php
来源: https://codeday.me/bug/20191121/2049210.html