Generar un CSR per un certificat multi-SAN amb OpenSSL
Introducció
La creació d’un fitxer csr per un certificat multi-domini amb vàries SAN (Subject Alternative Name) és diferent a la d’un amb un únic domini. Hem de fer ser servir un fitxer de configuració, on hi haurà les SANS addicionals.
Crear el fitxer de configuració amb els dominis addicionals
Hem de crear un fitxer .conf allà on vulguem, amb la següent informació:
[ req ] default_bits = 2048 distinguished_name = req_distinguished_name req_extensions = req_ext [ req_distinguished_name ] countryName = Country Name (2 letter code) stateOrProvinceName = State or Province Name (full name) localityName = Locality Name (eg, city) organizationName = Organization Name (eg, company) organizationalUnitName = Organizational Unit Name (eg, section) commonName = Common Name (e.g. server FQDN or YOUR name) emailAddress = Email Address [ req_ext ] subjectAltName = @alt_names [alt_names] DNS.1 = primersan.elquesigui DNS.2 = segonsan.elquesigui DNS.3 = tercersan.elquesigui default_bits = 2048
Podem afegir tants SAN com vulguem, respectant el format “DNS.<número> = <nom del domini>”.
Crear la sol·licitud CSR
A la línia de comandes escriurem:
openssl req -new -nodes -sha256 -out larutaielnomquevulguem.csr -config larutaielnomdelfitxerdeconfiguracio.cnf -keyout larutaielnomquevulguem.key
Se’ns preguntarà tota una sèrie de paràmetres necessaris per la creació del CSR:
Generating a RSA private key ...........................+++++ .........................................................+++++ writing new private key to ' larutaielnomquevulguem.key ' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) []:XX State or Province Name (full name) []:xxx Locality Name (eg, city) []:xxx Organization Name (eg, company) []:xxx Organizational Unit Name (eg, section) []:xxx Common Name (e.g. server FQDN or YOUR name) []:xxx Email Address []:xxx@xxx
Un cop introduïdes totes aquestes dades, es generarà el fitxer CSR a la ruta que haguem indicat.
Verificar CSR
Podem verificar el CSR amb la comanda:
openssl req -noout -text -verify -in larutaielnomquevulguem.csr
La sortida serà similar a això:
verify OK
Certificate Request:
Data:
Version: 1 (0x0)
Subject: C = XX, ST = xxx, L = xxx, O = xxx, OU = xxx, CN = xxx, emailAddress = xxx@xxx
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:00:00:00:00:00:00:00:00:00:00:00:00:00:
... (una seqüència llarga de parells hexadecimals)
00:00
Exponent: 65537 (0x10001)
Attributes:
Requested Extensions:
X509v3 Subject Alternative Name:
DNS: primersan.elquesigui, DNS: segonsan.elquesigui, DNS: tercersan.elquesigui
Signature Algorithm: sha256WithRSAEncryption
00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
... (una altra seqüència llarga de parells hexadecimals)
00:00:00:00

