![如何从证书签名请求中导出公钥?](https://linux22.com/image/1536358/%E5%A6%82%E4%BD%95%E4%BB%8E%E8%AF%81%E4%B9%A6%E7%AD%BE%E5%90%8D%E8%AF%B7%E6%B1%82%E4%B8%AD%E5%AF%BC%E5%87%BA%E5%85%AC%E9%92%A5%EF%BC%9F.png)
我编写了 Android 代码来生成 RSA 密钥对和证书签名请求。
以下是我的 CSR 内容:
-----BEGIN CERTIFICATE REQUEST-----
MIIBojCCAQ0CAQAwQjEVMBMGA1UEAwwMdGhhbmhsYW0uY29tMQwwCgYDVQQKDANC
S1UxGzAZBgNVBAsMElRlbGVjb20gRGVwYXJ0bWVudDCBnzANBgkqhkiG9w0BAQEF
AAOBjQAwgYkCgYEA0beMquCjIe3ILA8RpTTW/Xb+jXOz7g+xQJtBPL+fih8sB/d6
9u93nGGg+Dra1HS6bm2gns0J/Zm9A/AJgB3zAW5hpX0bgL2BJ/dcnjPMh3/peNWs
elu0sMOqYARFxCbKc3YPC04ZKp6RKgar5AhZAoOKuQLZtmb4EquxoM7CTqECAwEA
AaAiMCAGCSqGSIb3DQEJDjETMBEwDwYDVR0TAQH/BAUwAwEB/zALBgkqhkiG9w0B
AQsDgYEAMvdLO8e7llE+IG4smDtz8A9edTqbbglUMPMASVTEn1F7A1lu1u79depE
rNZtk983qflG7I57cvKS65O0G+Qo0xmvRNLFVw6iETwR16uPx3ffisDBPWJBIySI
Slh1mPRLgky1+EQezWzG5I7Nozo1DDk2skjbB4v7acFBcRoSl6Y=
-----END CERTIFICATE REQUEST-----
我发现了一个工具可以解码我的 CSR 文件:
如何使用 OpenSSL 将此 CSR 文件中的公钥导出到publickey.pem
?
答案1
仅将公钥输出到名为的本地文件publickey.pem
:
openssl req -in csr.txt -noout -pubkey -out publickey.pem
您可以在终端上查看(PEM 编码的)密钥,而无需通过删除最后一个参数将其放入文件中:
openssl req -in csr.txt -noout -pubkey
注意:该-noout
选项是必需的,因为默认情况下整个 CSR 将放在输出文件中,而您的问题仅要求提供公钥。
加分点:要查看 BASE64 编码的 PEM 输出并查看十六进制格式的实际公钥,请将其通过管道传输到pkey
openssl 函数:
openssl req -in csr.txt -noout -pubkey | openssl pkey -pubin -noout -text
答案2
openssl req -in file.csr -pubkey -out pubkey.pem