具有多個名稱的 CRL 分發點

具有多個名稱的 CRL 分發點

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

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

            X509v3 CRL Distribution Points: 

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

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

答案1

要定義 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 進行簽署。

相關內容