88

我正在使用以下 openssl 命令将我的公钥存储到 .pem 文件中。

openssl> x509 -in E:/mycert.pem -pubkey  -out E:/mypubkey.pem

但是当我尝试使用这个命令时,它会将整个证书信息存储在 mypubkey.pem 文件中。

我已经看到我可以使用保存我的公钥

openssl> x509 -pubkey -noout -in cert.pem > pubkey.pem

但它抛出了一个错误。我不能使用“>”运算符。

4

2 回答 2

199

有几种方法可以做到这一点。

首先,不要进入 openssl 命令提示符模式,只需在 Windows 提示符下的一个命令行中输入所有内容:

E:\> openssl x509 -pubkey -noout -in cert.pem  > pubkey.pem

如果由于某种原因,您必须使用 openssl 命令提示符,只需输入“>”之前的所有内容。然后 OpenSSL 会将公钥信息打印到屏幕上。然后,您可以将其复制并粘贴到名为 pubkey.pem 的文件中。

openssl> x509 -pubkey -noout -in cert.pem

输出将如下所示:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAryQICCl6NZ5gDKrnSztO
3Hy8PEUcuyvg/ikC+VcIo2SFFSf18a3IMYldIugqqqZCs4/4uVW3sbdLs/6PfgdX
7O9D22ZiFWHPYA2k2N744MNiCD1UE+tJyllUhSblK48bn+v1oZHCM0nYQ2NqUkvS
j+hwUU3RiWl7x3D2s9wSdNt7XUtW05a/FXehsPSiJfKvHJJnGOX0BgTvkLnkAOTd
OrUZ/wK69Dzu4IvrN4vs9Nes8vbwPa/ddZEzGR0cQMt0JBkhk9kU/qwqUseP1QRJ
5I1jR4g8aYPL/ke9K35PxZWuDp3U0UPAZ3PjFAh+5T+fc7gzCs9dPzSHloruU+gl
FQIDAQAB
-----END PUBLIC KEY-----
于 2013-06-17T19:57:19.977 回答
11

如果是 RSA 密钥

openssl rsa  -pubout -in my_rsa_key.pem

如果您需要 openssh 的格式,请参阅使用 RSA 私钥生成公钥?

请注意,公钥是从私钥生成的,ssh 使用身份文件(私钥文件)生成公钥并将其发送到服务器,并通过身份文件中的私钥从服务器解密加密的令牌。

于 2017-03-31T08:53:33.587 回答