php openssl_x509_parse не парсит некоторые сертификаты

Почему-то openssl_x509_parse возвращает false на некоторые сертификаты, буквально 1-2% из общей массы.

$crt = openssl_x509_parse(openssl_x509_read("-----BEGIN CERTIFICATE-----\n{$cert}\n-----END CERTIFICATE-----"));

// вот такое предупреждение (на windows) php 7.1
Warning: openssl_x509_read(): supplied parameter cannot be coerced into an X509 certificate!
// или вот такое на сервере (ubuntu) php 8.0
PHP Warning:  openssl_x509_read(): X.509 Certificate cannot be retrieved 

Хотя через openssl все исправно обрабатывает командой, но надо создавать текстовый файл и передавать его openssl

openssl x509 -in test.crt -text -noout

Ну, и на выходе получаем текстовый вывод, который также еще надо разобрать, вытащить нужную информацию. Openssl_x509_parse, конечно, удобнее, поскольку сразу возвращал массив

Почему такая разница? Как-то можно исправить или использовать через exec() openssl


Ответы (0 шт):