У меня есть сертификат, и я хочу прочитать 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
Других решений пока нет …