我有几个证书,它们的格式看起来非常相似,除了一件事,我使用以下 openssl 命令检查了证书的详细信息
openssl x509 -in certname -text
在其中一个证书中,主题公钥信息如下所示
Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit)
另一个看起来像
Subject Public Key Info: Public Key Algorithm: rsaEncryption Public Key: (1024 bit)
我使用以下命令生成了证书
openssl genrsa -out my.key 1024
openssl req -new -key my.key -config -out my.req
openssl ca -out my.crt -infiles my.req
我的证书包含公钥:(1024 位),而不是“RSA 公钥:(1024 位)”
要获取证书中的“RSA 公钥:(1024 位)”,需要做哪些不同的事情?我的 my.key 以
-----BEGIN RSA PRIVATE KEY-----
所以它是一个 RSA 密钥。
答案1
您是否真的会比较openssl x509
给定不同输入文件的同一实用程序的输出?您询问的不同输出显然只是 OpenSSL 版本之间的差异。例如,openssl-0.9.8e 有这样的代码:
BIO_printf(bp,"%12sRSA Public Key: (%d bit)\n","",
BN_num_bits(pkey->pkey.rsa->n));
但是,openssl-1.0.0 的文本略有不同:
if (BIO_printf(bp,"Public-Key: (%d bit)\n", mod_len)
<= 0) goto err;
(请注意,实际文本是Public-Key
,而不是Public Key
)。因此,根据您用于转储文件的 OpenSSL 版本,同一证书的输出可能会有所不同,并且包含的文件RSA Public Key: (1024 bit)
只是使用旧版本的 OpenSSL 转储为文本。