SUSE Linux用の.rpmファイルをコーディング、ビルド、署名すると、以下のように正常に署名されます。
rpm --checksig -v xxx.rpm
Header V4 RSA/SHA256 Signature, key ID 7936b039: OK
Header SHA1 digest: OK
Header SHA256 digest: OK
Payload SHA256 digest: OK
V4 RSA/SHA256 Signature, key ID 7936b039: OK
MD5 digest: OK
ただし、このファイルを次の場所にコピーした場合SUSE Linuxエンタープライズエディション12 SP3PCでもう一度確認してみると、結果は次のようになります。
rpm --checksig -v xxx.rpm
Header V4 RSA/SHA256 Signature, key ID 7936b039: NOKEY
Header SHA1 digest: OK (62415d048bc9e59e70037e94e41e54e1087a93af)
V4 RSA/SHA256 Signature, key ID 7936b039: NOKEY
MD5 digest: OK (bde2174905b9e9b05953b148385ed99a)
その後、インストール時にエラーが発生します。
xxx.rpm:
Header V4 RSA/SHA256 Signature, key ID 7936b039: NOKEY
V4 RSA/SHA256 Signature, key ID 7936b039: NOKEY
xxx-15.4.2.1-0.x86_64 (Plain RPM files cache): Signature verification failed [4-Signatures public key is not available]
Abort, retry, ignore? [a/r/i] (a):
インターネットでいくつかのソリューションを調査してインストールする前に、公開鍵ファイル(RPMファイルに署名したときに生成されたもの)を再インポートしようとしました。 sudo rpm --import RPM-GPG-KEY-faleman
しかし、まだ失敗しました。
この問題の原因は何ですか?
エラーメッセージを受け取らずにSUSE Linuxに正常にインストールできるように.RPMファイルに署名するにはどうすればよいですか?
答え1
SLE12には、V4署名をサポートしていない以前のバージョンのRPM(4.11.2)があります。したがって、V3署名を使用するようにビルド構成を変更してください。 :D
ここでいくつかの助けを見つけることができます。https://adminotes.blogspot.com/2011/12/centos-6-rpm-sign-problem-v4-signatures.html
答え2
互換性のないGPGキー(V4)を使用している可能性があります。この人のようにhttps://localsteve.wordpress.com/2013/02/06/signing-rpms-cause-unverifying-v4-signatures-and-extreme-frustration/
異なる暗号化アルゴリズムを使用して別のキーを作成してみてください。