我有一个证书,我希望从文件路径中读取SHA 1 Fingerprint
和SHA 256 Fingerprint
。
<?php
ini_set("display_startup_errors", 1);
ini_set("display_errors", 1);
error_reporting(-1);
$certificate = "./wwwbbminfocom.crt";
$cert = openssl_x509_read($certificate);
$sha1_hash = openssl_x509_fingerprint($cert); // sha1 hash
$md5_hash = openssl_x509_fingerprint($cert, 'md5'); // md5 hash
?>
注意:我从网站下载了SSL证书 https://www.bbminfo.com/Tutor/php_error_error_log.php
我收到以下PHP警告:
Warning: openssl_x509_read(): supplied parameter cannot be coerced into an X509 certificate! in /home/super/public_html/md.php on line 8
Warning: openssl_x509_fingerprint(): cannot get cert from parameter 1 in /home/super/public_html/md.php on line 9
Warning: openssl_x509_fingerprint(): cannot get cert from parameter 1 in /home/super/public_html/md.php on line 10
请协助我如何读取文件并获取指纹。我正在使用PHP 7.0
传递给OpenSSL函数的文件路径必须是完全限定的URL。在本地文件系统上时,这意味着它们采用file://absolute/path/to/file
格式。
或者在您的情况下:
$certificate = "file://".realpath("./wwwbbminfocom.crt");
当然,正如评论中所建议的,您也可以传递原始文件内容,但这在技术上效率较低。
在这里阅读: https://secure.php.net/manual/en/openssl.certparams.php