Desidero configurare OpenSSL in modo tale che durante l'esecuzione openssl req -new
per generare una nuova richiesta di firma del certificato, mi venga richiesto di includere eventuali nomi di soggetti alternativi nel CSR.
Ho aggiunto questa riga alla [req_attributes]
sezione del mio openssl.cnf
:
subjectAltName = Alternative subject names
Questo ha l'effetto desiderato che ora mi viene richiesto per SAN quando si genera un CSR:
$ openssl req -new -out test.csr -key ./test.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) [US]:
State or Province Name (full name) [New York]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Example Co]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:test.example.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Alternative subject names []:DNS:alt1.example.com
Nell'esempio sopra, ho inserito DNS:alt1.example.com
quando richiesto per le SAN.
Il problema è che il CSR risultante non sembra essere ben formattato:
$ openssl req -text -in ./test.csr
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=US, ST=New York, O=The Banes, CN=test.thebanes.org
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
[...]
Exponent: 65537 (0x10001)
Attributes:
X509v3 Subject Alternative Name:unable to print attribute
OpenSSL si lamenta che non è in grado di stampare il valore dell'attributo Nome alternativo soggetto. Dagli esempi online (in cui le persone codificano le SAN nel loro openssl.cnf, piuttosto che richiederle interattivamente come voglio), mi aspetto invece di vedere questo:
Attributes:
X509v3 Subject Alternative Name:
DNS:alt1.example.com
Quindi, come posso generare un CSR ben formato con SAN richieste interattivamente?
openssl
- avresti bisogno di uno script che rovinerebbe il suo file di configurazione per quello. :( PS Una soluzione per farlo in modo non interattivo provata è qui: stackoverflow.com/a/9158662/2693875