Ponto de distribuição CRL com vários nomes

Ponto de distribuição CRL com vários nomes

Gostaria de criar um certificado com ponto de distribuição de CRL, que contenha vários URLs (apontando para a mesma CRL, conforme RFC 5280):

Quando o OpenSSL analisa esse certificado, ele mostra algo assim:

            X509v3 CRL Distribution Points: 

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

Como criar esse certificado sozinho, de preferência usando o openssl?

Responder1

Para definir uma SEQUÊNCIA de GeneralNames você precisa definir os crlDistributionPoints em sua configuração OpenSSL usando o formato completo:

crlDistributionPoints = cdp1

...

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

O que aparece como:

        X509v3 CRL Distribution Points:

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

Um exemplo completo começaria criando um arquivo de configuração (por exemplo 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

Use a configuração para gerar uma solicitação de assinatura de certificado (CSR):

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

Observe que o procedimento acima cria uma chave RSA de 2.048 bits sem proteção por senha. Remova -nodesse precisar proteger com senha a chave privada.

Faça com que uma CA assine o CSR gerado acima.

informação relacionada