Unable to verify a public cert's modules with openssl (Unable to verify rsa public key from a private key)

Unable to verify a public cert's modules with openssl (Unable to verify rsa public key came from a private key)

我创建了一个私钥和 public 密钥对,如下所示:

openssl genrsa -out priv.pem 2048
openssl rsa -in priv.pem -pubout -out pub.pem

我现在想通过 openssl 验证 public 密钥是否来自私钥。我可以像这样散列模数:

openssl rsa -noout -modulus -in priv.pem | openssl md5

然而,当我尝试散列 public 密钥的模数时,出现错误:

penssl x509 -noout -modulus -in pub.pem | openssl md5
unable to load certificate
140020691816896:error:0909006C:PEM routines:get_name:no start line:../crypto/pem/pem_lib.c:745:Expecting: TRUSTED CERTIFICATE
(stdin)= d41d8cd98f00b204e9800998ecf8427e

我知道我做错了,但是我不知道有什么方法可以实际测试 public 密钥是否正确地来自私钥。除了使用我的 public 密钥加密文件然后尝试使用私有密钥解密它之外,我如何仅根据我创建密钥对的方式在使用 openssl 的 inux 中完成此操作?

x509 命令需要 X.509 证书作为输入。您尚未创建证书,并且仅提供 public 密钥作为输入。证书不仅仅是 public 密钥;它是身份信息和 public 密钥之间的绑定。

您可以使用与私钥相同的命令,但使用 -pubin 参数。例如:

openssl rsa -noout -modulus -in pub.pem -pubin | openssl md5