Me gustaría crear un certificado con un punto de descripción CRL, que contenga varias URL (que apuntan a la misma CRL, según RFC 5280):
Cuando OpenSSL analiza dicho certificado, muestra algo como esto:
X509v3 CRL Distribution Points:
Full Name:
URI:http://addr1
URI:http://addr2
...
¿Cómo crear dicho certificado yo mismo, preferiblemente usando openssl?
Respuesta1
Para definir una SECUENCIA de GeneralNames, debe definir crlDistributionPoints en su configuración de OpenSSL usando el formato completo:
crlDistributionPoints = cdp1
...
[cdp1]
fullname = URI:http://example.com/myca.crl,URI:http://example.org/my.crl
Que aparece como:
X509v3 CRL Distribution Points:
Full Name:
URI:http://example.com/myca.crl
URI:http://example.org/my.crl
Un ejemplo completo comenzaría creando un archivo de configuración (por ejemplo 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
Utilice la configuración para generar una Solicitud de firma de certificado (CSR):
openssl req -newkey rsa:2048 -keyout example.key -nodes -config example.cnf -out example.csr
Tenga en cuenta que lo anterior crea una clave RSA de 2048 bits sin protección con contraseña. Elimine -nodes
si necesita proteger con contraseña la clave privada.
Haga que una CA firme el CSR generado anteriormente.