Начиная с PHP 5.6, вы можете использовать openssl_x509_fingerprint()
:
$cert = openssl_x509_read($certificate);
$sha1_hash = openssl_x509_fingerprint($cert); // sha1 hash
$md5_hash = openssl_x509_fingerprint($cert, 'md5'); // md5 hash
Функция в настоящее время недокументирована, но это будет исправлено во время выпуска; это сигнатура функции:
openssl_x509_fingerprint($cert [, $hash_method = "sha1" [, $raw_output = false ] ] )