powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Excel вытащить данные с сертификата.
11 сообщений из 11, страница 1 из 1
VBA Excel вытащить данные с сертификата.
    #39544010
Bobax012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, есть ли какая-то возможность через VBA Excel вытащить данные (Срок действия, поставщик, ИНН и т.д.) с файла сертификата (*.cer) выбираемого вручную? Поделитесь идеями или ссылками.
...
Рейтинг: 0 / 0
VBA Excel вытащить данные с сертификата.
    #39545632
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bobax012,

Вероятнее всего есть, давайте пример сертификата.
...
Рейтинг: 0 / 0
VBA Excel вытащить данные с сертификата.
    #39545767
Bobax012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iMrTidy,

Вот как пример, вытащить данные со строки "Издатель" и срок действия сертификата.
...
Рейтинг: 0 / 0
VBA Excel вытащить данные с сертификата.
    #39545823
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример извлечения данных из сертификатов: https://gallery.technet.microsoft.com/scriptcenter/15680241-97c3-4629-8168-a1a742ebc2bb
Там используется утилита certutil.exe с ключом -decodeHex , но у меня с вашим файлом этот ключ не сработал: "Недопустимые данные".
Зато certutil -dump выдал (это часть текста)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Issuer:
    CN=Головной удостоверяющий центр
    OID.1.2.643.3.131.1.1=007710474375
    OID.1.2.643.100.1=1047702026701
    O=Минкомсвязь России
    STREET=125375 г. Москва, ул. Тверская, д. 7
    L=Москва
    S=77 г. Москва
    C=RU
    E=dit@minsvyaz.ru

NotBefore: 10.03.2017 15:36
NotAfter: 10.03.2027 15:36

Subject:
    CN=АО "Электронная Москва"
    O=АО "Электронная Москва"
    STREET=Большой Сухаревский пер., д.11, стр.1, оф.6
    L=Москва
    S=77 г. Москва
    C=RU
    E=support@e-moskva.ru
    OID.1.2.643.3.131.1.1=007707314029
    OID.1.2.643.100.1=1027707013806
Так что можете использовать.
...
Рейтинг: 0 / 0
VBA Excel вытащить данные с сертификата.
    #39545931
Bobax012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо за подсказку, но при выполнении certutil -dump с другими сертификатами выдает сообщение - CertUtil: Слишком много аргументов, может быть знаете как можно это исправить?

КазанскийПример извлечения данных из сертификатов: https://gallery.technet.microsoft.com/scriptcenter/15680241-97c3-4629-8168-a1a742ebc2bb
Там используется утилита certutil.exe с ключом -decodeHex , но у меня с вашим файлом этот ключ не сработал: "Недопустимые данные".
Зато certutil -dump выдал (это часть текста)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Issuer:
    CN=Головной удостоверяющий центр
    OID.1.2.643.3.131.1.1=007710474375
    OID.1.2.643.100.1=1047702026701
    O=Минкомсвязь России
    STREET=125375 г. Москва, ул. Тверская, д. 7
    L=Москва
    S=77 г. Москва
    C=RU
    E=dit@minsvyaz.ru

NotBefore: 10.03.2017 15:36
NotAfter: 10.03.2027 15:36

Subject:
    CN=АО "Электронная Москва"
    O=АО "Электронная Москва"
    STREET=Большой Сухаревский пер., д.11, стр.1, оф.6
    L=Москва
    S=77 г. Москва
    C=RU
    E=support@e-moskva.ru
    OID.1.2.643.3.131.1.1=007707314029
    OID.1.2.643.100.1=1027707013806
Так что можете использовать.
...
Рейтинг: 0 / 0
VBA Excel вытащить данные с сертификата.
    #39546136
Bobax012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторCertUtil: Слишком много аргументов

Разобрался, все из-за того, что в имени файла были пробелы.
...
Рейтинг: 0 / 0
VBA Excel вытащить данные с сертификата.
    #39546929
Bobax012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bobax012,

Возник еще 1 вопрос. Хочу сделать так, чтобы в VBA при запуске макроса создавался файл с содержимым сертификата. Если делать вручную через командную строку

Код: vbnet
1.
certutil.exe "C:\1\qual_root_2017.cer" > "C:\1\Результат.txt"



То все работает на ура, но как это сделать в макросе. Убил 2 дня, не могу понять, то пишет, что нет доступа, то просто игнорируется запрос. Как можно реализовать код указанный выше в VBA Excel? Файл сертификата выше в данной теме.
...
Рейтинг: 0 / 0
VBA Excel вытащить данные с сертификата.
    #39546994
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bobax012,
в простейшем случае
Код: vbnet
1.
  Shell "cmd /c certutil.exe ""C:\1\qual_root_2017.cer"" > ""C:\1\Результат.txt""", vbHide


НО! Функция Shell - асинхронная, т.е. выполнение вашей программы продолжается немедленно, она не ждет окончания выполнения запущенной программы. То есть если сразу пытаться открыть текстовый файл, результат будет плачевный.
Есть разные методы решения этой проблемы: https://www.google.ru/search?q=vba shell asynchronous
...
Рейтинг: 0 / 0
VBA Excel вытащить данные с сертификата.
    #39546995
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bobax012,

кстати, в примере из моего предыдущего ответа чтение StdOut запущенной программы производится без создания файла. Можете так же сделать!
...
Рейтинг: 0 / 0
VBA Excel вытащить данные с сертификата.
    #39547000
Bobax012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КазанскийBobax012,

кстати, в примере из моего предыдущего ответа чтение StdOut запущенной программы производится без создания файла. Можете так же сделать!

Спасибо большое еще раз, буду разбираться.
...
Рейтинг: 0 / 0
VBA Excel вытащить данные с сертификата.
    #39547050
Bobax012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КазанскийBobax012,
в простейшем случае
Код: vbnet
1.
  Shell "cmd /c certutil.exe ""C:\1\qual_root_2017.cer"" > ""C:\1\Результат.txt""", vbHide


НО! Функция Shell - асинхронная, т.е. выполнение вашей программы продолжается немедленно, она не ждет окончания выполнения запущенной программы. То есть если сразу пытаться открыть текстовый файл, результат будет плачевный.
Есть разные методы решения этой проблемы: https://www.google.ru/search?q=vba shell asynchronous

Самое смешное, что я делал так как вы описали
Код: vbnet
1.
  Shell "cmd /c certutil.exe ""C:\1\qual_root_2017.cer"" > ""C:\1\Результат.txt""", vbHide


но у меня получался пустой файл и я думал, что делаю, что-то не так, но оказывается дело было в долбаном Касперском, который блокировал работе либо CMD, либо certutil.exe. После его приостановки, все работает, хоть 10 раз запускай. После включения снова либо не создается файл, либо файл 0 размера.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Excel вытащить данные с сертификата.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]