Проверка того, что загруженный файл является допустимым файлом PEM


Я пытаюсь найти эффективный/элегантный способ проверки того, что загруженный пользователем файл является допустимым файлом pem, не полагаясь на проверку расширения. Кто-нибудь добился этого или у кого есть какие-либо идеи?

Author: Mike Keen, 2015-04-28

2 answers

Используйте "openssl rsa" и проанализируйте его вывод

Неправильный файл:

$ openssl rsa -noout -modulus -in ./wrong.pem 
unable to load Private Key

140324790638432:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY

Правильный ключ

$ openssl rsa -noout -modulus -in ../proper.pem
Modulus=98B139C27E3623E542CEC76ECEA0619D045746B2F99265F030391296C5DD83301A85C43A00C745DAB77DFC771CE5666CF81ED81C4561F945EF123D5CB5687500A243E1F87B707FFFC318EA8E9605B2047E2D790BB71B9AF04F385C2E40C18A40FE5FB5CBC96C0C05D4220E5C73564027C6CB0DEEDB8AD8460B78A54536ADB81D204FDDFDB388F6EEFD537E6C3D743A9C9C2FE00D9A819A9587EE359DAA48AD08FC06D99D8686C38B0BD684CC41F0B61115F65B005C53F472D648C2EB92AAFC6526E7F4FFE873FB0C3589C24CCCCA1DCA08B352F9893310F876C007E72B809FAB6738855C5C901C8C006E9E137BF340E8A6E204FC70864AE29D9009DC9CBBEAD9

Таким образом, вы можете обернуть выполнение openssl в shell_exec(), проанализировать вывод и проверить, не удалось ли загрузить закрытый ключ, чтобы обнаружить неправильный сертификат

 3
Author: Evgeniy Kuzmin, 2015-04-28 16:27:27

Я использую php-файл для проверки моего pem, выполните следующие действия,

  1. Загрузить файл из проверить pem
  2. Измените расширение на FILENAME.php от FILENAME.txt
  3. Переместите его в папку, в которой хранится файл .pem.
  4. Напишите маркер устройства и имя файла pem.php-файл.
  5. Откройте терминал и выполните команду "php FILENAME.php "

Если он показывает успех, значит, файл .pem верен.

 -1
Author: cjd, 2015-09-08 10:44:29