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
Может ли кто-нибудь пролить свет на то, почему мой сервер не проверяет одну и ту же пару файлов?
Ошибка в 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" , и я уверен, что он сразу заработает!