Как проверить файл и отдельную подпись p7s с openssl? - PullRequest
0 голосов
/ 07 мая 2019

Можно ли проверить файл с отдельной подписью p7s? Я пытаюсь сделать это с помощью Openssl, но я получил сообщение по умолчанию об openssl и unknown option -verify

вот моя команда:

openssl pkcs7 -inform DER -verify -noverify -in file.docx.p7s -out file.docx

возможно ли выполнить проверку файла и подпись p7s с помощью openssl?

- редактировать ...

Просто чтобы сообщить вам. Я получил файл p7s с файлом PDF. Я хотел бы знать, как это подтвердить.

1 Ответ

0 голосов
/ 07 мая 2019

Наконец, я понимаю немного о файле p7s.Это довольно обычное явление для защиты сообщений электронной почты, но я могу использовать файлы p7s, которые содержат отдельные подписи PKCS # 7 с сертификатом, для обеспечения достоверности файла.

Итак, я отделяю своиобъяснение, по частям, чтобы было легко объяснить, что я здесь делаю.Пожалуйста, исправьте меня, если что-то не так!

Первая, начальная конфигурация:

  1. создать личный ключ и сертификат
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
Добавить в доверенные сертификаты, чтобы позволить openssl разрешить ваш сертификат как действительный
sudo cp cert.pem /usr/local/share/ca-certificates/
sudo update-ca-certificates

Второе, создание файла p7s

  1. ВыполнитьКоманда ниже, чтобы подписать файл PDF, с закрытым ключом, сертификатом и генерировать файл p7s, который содержит подписанный хэш файла и сертификат
openssl smime -sign -in test.pdf -inkey key.pem -outform DER -binary -signer cert.pem -out test.pdf.p7s

Наконец, Проверка файла p7s

  1. Теперь я должен извлечь подпись pkcs7 из файла p7s
openssl pkcs7 -inform der -in test.pdf.p7s -out test.pdf.pkcs7
После этого я извлек сертификат из файла pkcs7
openssl pkcs7 -print_certs -in test.pdf.pkcs7 -out test.pdf.pkcs7.cert
Затем проверьте pkcs7, сертификат и файл вместе.Просто чтобы проверить, принадлежит ли этот файл этому сертификату
openssl smime -verify -binary -inform PEM -in test.pdf.pkcs7 -content test.pdf -certfile test.pdf.pkcs7.cert -nointern -noverify > /dev/null

PS .: Чтобы удалить этот сертификат, просто выполните команды ниже.Это позволит удалить и обновить сертификаты

sudo rm -f /usr/local/share/ca-certificates/cert.pem
sudo update-ca-certificates --fresh
...