Назад | Перейти на главную страницу

Невозможно проверить подпись (openssl)

Я пытаюсь проверить подпись, но получаю сообщение «не удается загрузить файл ключа». Это сервер CentOS с OpenSSL версии 1.0.2 (22 января 2015 г.).

Ключи генерируются так:

ssh-keygen -t rsa -f serverkey -N '' -b 2048
mv serverkey serverkey-priv.pem
ssh-keygen -f serverkey.pub -e -m pem > serverkey-pub.pem ; rm -f serverkey.pub

Что приводит к serverkey-priv.pem & serverkey-pub.pem

Подписываю сообщение так:

openssl dgst -sha256 -sign serverkey-priv.pem -out message.sig message.txt

Файл message.sig создается нормально. Все идет нормально.

Однако, когда я пытаюсь проверить сообщение, используя только что сгенерированный файл sig:

openssl dgst -sha256 -verify serverkey-pub.pem -signature message.sig message.txt

Я получил "невозможно загрузить ключевой файл."

Что я делаю не так?

ssh-keygen должен генерировать как открытый, так и закрытый ключи.

Проверьте это с помощью:

ls -l serverkey*

Когда я использую

openssl rsa -in serverkey-priv.pem -pubout -out serverkey-pub.pem

чем когда я использую

ssh-keygen -f serverkey.pub -e -m pem > serverkey-pub.pem

Файл открытого ключа, созданный openssl rsa -pubout успешно проверяет сообщение. Похоже, что ssh-keygen's -m pem формат файла для открытых ключей несовместим с openssl ожидает. Фактически, чтение информации об открытом ключе с openssl rsa -text команда требует -RSAPublicKey_in который, похоже, не поддерживается для dgst.