我正在使用openssl创建一个自签名证书。
我使用openssl函数RSA_generate_key()
:创建了一个密钥对
key = RSA_generate_key(1024, 65537, null, 0);
现在,我想为自签名证书生成授权密钥标识符。
RFC说:
keyIdentifier字段的值应该从用于验证证书签名或生成唯一值的方法的公钥。生成密钥的两种常用方法来自公钥的标识符在第4.2.1.2节中进行了描述。
好的。让我们看看。在上述第4.2.1.2节中,描述中写道:
(1) keyIdentifier由BIT STRING subjectPublicKey的值(不包括标签,长度和未使用比特的数量)。
(2) keyIdentifier由一个带有值0100之后是位字符串值的SHA-1散列subjectPublicKey(不包括未使用的比特)。
如果我想使用版本(1):我如何获得要散列的数据以创建有效的授权密钥标识符
首先需要创建证书。然后添加具有以下权限的密钥标识符扩展:
add_ext(YourX509SelfSignedCert, NID_authority_key_identifier, "keyid,issuer");
你也只能使用keyid,有一篇关于在这里使用的好文章