Openssl 什么是公钥头和公钥信息?

Openssl 什么是公钥头和公钥信息?,openssl,cryptography,rsa,Openssl,Cryptography,Rsa,我试图找到什么是公钥头和公钥信息。我使用openssl和公钥模块转储了一个C格式的证书。它将公钥信息和公钥头列为公钥。但是,对于在我的服务器上生成的公钥,我无法使用openssl.exe rsa-pubin-inform DER-text-noout

我试图找到什么是公钥头和公钥信息。我使用openssl和公钥模块转储了一个C格式的证书。它将公钥信息和公钥头列为公钥。但是,对于在我的服务器上生成的公钥,我无法使用
openssl.exe rsa-pubin-inform DER-text-noout
转储这些字段


请解释一下这些字段在数字证书中的意义,它们对于所有公钥都是一样的吗?无法在openssl上获取此信息,只是提到DER编码将有额外的页眉和页脚。

我从未听说过公钥页眉。。。你能举个例子吗

公钥信息可能是X.509证书中公钥的标准编码方式,通常以。这些SubjectPublicKeyInfos可以转换为公钥文件(我假设您正试图这样做?如果我错了,请纠正我!)该部分还告诉您可以从何处找到有关特定算法的信息,以供参考。SubjectPublicKeyInfo的定义如下:

SubjectPublicKeyInfo  ::=  SEQUENCE  {
    algorithm            AlgorithmIdentifier,
    subjectPublicKey     BIT STRING  } 
RFC3279说:

RSAOID加密拟用于算法字段 属于AlgorithmIdentifier类型的值。参数字段必须为空 此算法标识符的ASN.1类型为NULL

进一步:

必须使用ASN.1类型的RSA公钥对RSA公钥进行编码:

因此,它是包含相关数据的subjectPublicKey字段-例如,您可以使用OpenSSL的
x509
命令获得这些值:

openssl x509 -in certificate.cer -inform DER -noout -text
打印(对于PEM证书,请删除-通知DER):

还有一个巧妙的技巧,就是如何使用
x509
直接生成PEM RSA公钥文件:

openssl x509 -inform DER -in certificate.cer -pubkey -noout > pubkey.pem
还有你的公钥是用PEM编码导出的

Subject Public Key Info:
        Public Key Algorithm: rsaEncryption
            Public-Key: (1024 bit)
            Modulus:
                00:cb:c2:...
            Exponent: 65537 (0x10001)
openssl x509 -inform DER -in certificate.cer -pubkey -noout > pubkey.pem