具有多个名称的 CRL 分发点

具有多个名称的 CRL 分发点

我想创建一个具有 CRL 分发点的证书,其中包含多个 URL(根据 RFC 5280,指向同一个 CRL):

当 OpenSSL 解析此类证书时,它会显示如下内容:

            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:http://addr1
                  URI:http://addr2
                  ...

如何自己创建这样的证书,最好使用 openssl?

答案1

要定义 GeneralNames 的 SEQUENCE,您需要使用完整格式在 OpenSSL 配置中定义 crlDistributionPoints:

crlDistributionPoints = cdp1

...

[cdp1]
fullname = URI:http://example.com/myca.crl,URI:http://example.org/my.crl

显示为:

        X509v3 CRL Distribution Points:

            Full Name:
              URI:http://example.com/myca.crl
              URI:http://example.org/my.crl

完整的示例将从创建配置文件开始(例如example.cnf):

[req]
prompt = no
distinguished_name = dn

[dn]
countryName = gb
organizationName = Example
commonName = Example Web Server

[ext]

subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
crlDistributionPoints = cdp1
subjectAltName = @alt_names

[cdp1]
fullname = URI:http://example.com/myca.crl, URI:http://example.org/my.crl

[alt_names]
DNS.1 = www.example.com
DNS.2 = www.example.org

使用配置生成证书签名请求(CSR):

 openssl req -newkey rsa:2048 -keyout example.key  -nodes -config example.cnf -out example.csr

请注意,上述操作会创建一个没有密码保护的 2048 位 RSA 密钥。-nodes如果您需要密码保护私钥,请删除。

让 CA 签署上面生成的 CSR。

相关内容