2017-08-02 4 views
2

Ich habe ein Zertifikat und ich möchte die SHA 1 Fingerprint und SHA 256 Fingerprint aus einem Dateipfad lesen.So lesen Sie einen Fingerabdruck eines Zertifikats aus einem Pfad in PHP

<?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 

?> 

Hinweis: Ich habe ein SSL-Zertifikat von der Website heruntergeladen https://www.bbminfo.com/Tutor/php_error_error_log.php

ich eine folgende PHP-Warnung bekam:

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 

bitte mir helfen, wie die Datei zu lesen und den Fingerabdruck bekommen. Ich verwende PHP 7.0

+0

versuchen, den Inhalt der Datei statt ot den Pfad hinzuzufügen: 'cert $ = openssl_x509_read (file_get_contents ($ Zertifikat));' –

+0

@MagnusEriksson - Vielen Dank ... Seine Arbeiten... –

Antwort

0

Dateipfade, die an OpenSSL-Funktionen übergeben werden, müssen vollständig qualifizierte URLs sein. Wenn sie sich im lokalen Dateisystem befinden, bedeutet dies, dass sie sich im Format file://absolute/path/to/file befinden.

Oder in Ihrem Fall:

$certificate = "file://".realpath("./wwwbbminfocom.crt"); 

Natürlich, wie in den Kommentaren vorgeschlagen, könnten Sie auch die RAW-Datei Inhalte passieren, aber das ist technisch weniger effizient.

Lesen Sie hier nach oben: https://secure.php.net/manual/en/openssl.certparams.php

Verwandte Themen