Openssl

具有多個名稱的 CRL 分發點

  • August 5, 2021

我想創建一個帶有 CRL 分發點的證書,其中包含多個 URL(根據 RFC 5280,指向同一個 CRL):

當 OpenSSL 解析此類證書時,它會顯示如下內容:

           X509v3 CRL Distribution Points: 

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

如何自己創建這樣的證書,最好使用openssl?

要定義 GeneralNames 的序列,您需要使用完整格式在 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。

引用自:https://serverfault.com/questions/1073543