如何使用 OpenSSL 将 nameRelativeToCRLIssuer 添加到 CRL

如何使用 OpenSSL 将 nameRelativeToCRLIssuer 添加到 CRL

我正在尝试使用 OpenSSL 创建带有 nameRelativeToCRLIssuer 属性(而不是 fullName 属性)的证书。我一直在使用以下 extfile.cnf 尝试生成 nameRelativeToCRLIssuer:

    crlDistributionPoints=crldp1_section

    [crldp1_section]
    namerelativetocrlissuer=URI:http://www.example.com/root.crl

并使用以下 openssl 命令进行签名:

    openssl x509 -req -in signingrequest.csr -extfile extfile.cnf -CAform PEM -CA ca.pem -CAkey ca.key -CAcreateserial -out certificate.pem -days 1825

这将创建以下证书[由于这是业务环境,因此删除了一些部分]:

Certificate:
Data:
    Version: 3 (0x2)
    Serial Number: 10317047815326669373 (0x8f2d845373441a3d)
Signature Algorithm: .....
    Issuer: .....
    Validity
        Not Before: Mar 18 19:46:21 2016 GMT
        Not After : Mar 17 19:46:21 2021 GMT
    Subject: .....
    Subject Public Key Info:
        Public Key Algorithm: id-ecPublicKey
            Public-Key: (256 bit)
            pub: 
                04:23:39:f3:76:a6:cf:35:6d:af:9b:39:7a:87:57:
                be:4b:c3:05:01:17:3e:4a:bb:de:44:ce:88:c0:91:
                2d:92:5c:c5:d7:0e:f4:a4:e6:8c:25:58:a1:bb:38:
                e9:be:22:d6:9a:04:ac:6d:f9:35:c8:ec:fe:48:0a:
                c3:0d:6f:14:1f
            ASN1 OID: prime256v1
            NIST CURVE: P-256
    X509v3 extensions:
        X509v3 CRL Distribution Points: 


Signature Algorithm: .....

根据请求函数它是 fullName 和 nameRelativeToCRLIssuer 之间的选择变量。我已经为此绞尽脑汁好几天了,却没有取得任何实质性进展。如果有人能提供任何帮助,我将不胜感激。

答案1

来自 OpenSSLx509v3_config文档,而不是使用:

crlDistributionPoints=crldp1_section

[crldp1_section]
namerelativetocrlissuer=URI:http://www.example.com/root.crl

你可能想做类似的事情:

crlDistributionPoints=crldp1_section

[crldp1_section]
relativename=@relname_section

[relname_section]    
C       = US
O       = Org, Inc.
0.OU    = Org Unit 1
1.OU    = Sub Org Unit 2
CN      = relative common name

有趣的是,使用 OpenSSL,该relativename值仅用于指定(相对)DN,而不是像使用fullname值那样的 URI。

有关其他示例,请参阅这里

希望这可以帮助!

相关内容