Я пытаюсь проверить доверенное хранилище, содержащееся в .zip-файле. Мне удалось проверить это на своей рабочей станции (на которой установлена ubuntu с OpenSSL 1.0.1f 6 Jan 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 Jan 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
user) имеет достаточно прав для доступа к файлу.
Команда для 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" и я уверен, что он сразу заработает!