Можна якось програмно експортувати предмет цифрового сертифіката файлу, якщо сам сертифікат не встановлений на робочій станції, а використовується лише для підписання цього конкретного файлу?
Мені потрібно якось витягти цю інформацію з файлу і перевірити, чи правильно вона. Переважно, використовуючи Python / CMD / PowerShell
Редагувати:
Вибачте за відсутність деталей.
Зараз я використовую цей скрипт python (який я змінив для запуску на Python 3.6): http://www.zedwood.com/article/python-openssl-x509-parse-certificate для розбору файлу .cer, який я витягнув із оригінальний виконуваний файл із цим маленьким інструментом, який я знайшов (який я також змінив для роботи з Python 3): https://blog.didierstevens.com/programs/disitool/, але лише після того, як я конвертую його з кодованого DER двійкового файлу до бази-64 за допомогою Windows Certutil.
Проблема з сценарієм disitool полягає в тому, що він буквально РЕЗУЛЬТУє байт-масив 'підпису' від самого виконуваного файлу за допомогою модуля python python, що робить вилучений файл .cer недійсним, відповідно до помилки python, яку я постійно отримую при спробі завантажте сертифікат модулем OpenSSL.crypto:
[('asn1 encoding routines', 'asn1_check_tlen', 'wrong tag'), ('asn1 encoding routines', 'asn1_item_embed_d2i', 'nested asn1 error'), ('asn1 encoding routines', 'asn1_template_noexp_d2i', 'nested asn1 error'), ('PEM routines', 'PEM_ASN1_read_bio', 'ASN1 lib')]
Але аналіз хорошого вилученого сертифіката (з першим сценарієм, який я опублікував вище) працює, як ви бачите тут:
Отже, мені просто потрібен спосіб витягнути сертифікат із виконуваного файлу. Або якщо ви знайшли моє рішення занадто складним, якщо ви маєте уявлення, як я міг отримати цей текст "Редмонда" з поля "Тема сертифіката", я дуже відкритий до ідей :)