OpenSSL dgst: Ошибка при открытии файла подписи

I ' m пытается проверить доверенное хранилище, содержащееся в ZIP-файле. Я смог проверить это на своей рабочей станции (на которой установлена ​​ubuntu с OpenSSL 1.0.1f 6 января 2014 г. ).

openssl dgst -ecdsa-with-SHA1 -verify <(openssl x509 -sha1 -in signature-certificate.pem -noout -pubkey) -signature truststore.zip.dgst truststore.zip                                                                                                  

Как уже говорилось, это работает на моей рабочей станции, однако, запустив это на моем сервере Я получаю эту ошибку:

Error opening signature file truststosre.zip.dgst
3069867216:error:02001002:system library:fopen:No such file or directory:bss_file.c:165:fopen('truststosre.zip.dgst','rb')
3069867216:error:2006D080:BIO routines:BIO_new_file:no such file:bss_file.c:168:

Я должен упомянуть, что «сервер» имеет OpenSSL 1.0.2 22 января 2015 г. и / bin / bash версия 14.3.30 (1) -release

Может ли кто-нибудь пролить свет на то, почему мой сервер не проверяет одну и ту же пару файлов?

0
задан 4 August 2016 в 04:39
1 ответ

Ошибка в OpenSSL означала, что он не смог найти указанный вами файл:

3069867216:error:02001002:system library:fopen:No such file or directory:bss_file.c:165:fopen('truststosre.zip.dgst','rb')

Это может произойти, если вы запускаете openssl без установки переменных окружения или когда openssl запускается из другой процесс.

Прежде всего, попробуйте указать полный путь к вашему файлу truststosre.zip.dgst , если это не поможет - проверьте, не запустил ли пользователь openssl (т.е. запускается внутри PHP-скрипта, это будет пользователь www-data ) имеет достаточно прав для доступа к файлу.

Команда для пользователя www-data будет выглядеть так:

sudo -u www-data cat /path/to/truststosre.zip.dgst

Если у пользователя недостаточно прав - вы получите ошибку Permission denied .

P.S. При более внимательном рассмотрении можно увидеть возможное гениальное решение, которое включает в себя исправление наиболее распространенного типа ИТ-ошибки - опечатки:

Когда вы пытаетесь проверить файл на своем ПК, он называется truststore.zip.dgst , а на удаленном сервере вы получаете доступ к truststo ** s ** re.zip.dgst . Попробуйте удалить этот "s" , и я уверен, что он сразу заработает!

2
ответ дан 4 December 2019 в 13:39

Теги

Похожие вопросы