如何从证书签名请求中导出公钥?

如何从证书签名请求中导出公钥?

我编写了 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 文件:

sslshopper.com 上的 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 输出并查看十六进制格式的实际公钥,请将其通过管道传输到pkeyopenssl 函数:
openssl req -in csr.txt -noout -pubkey | openssl pkey -pubin -noout -text

答案2

openssl req -in file.csr -pubkey -out pubkey.pem

相关内容