Procedura per OpenSSL

Per effettuare la richiesta del certificato, bisogna generare la chiave privata e la richiesta di certificato.

L'esempio qua sotto usa dummy come nome del server da registrare.

:!: WARNING: fare degli errori nel file di configurazione openssl principale puo' corrompere il corretto funzionamento del sistema su cui si sta generando la richiesta di certificato anche e non limitatamente alla risoluzione dei nomi a DNS.

Usare pertanto i valoro sotto riportati:

Scarica il file openssl.cnf di esempio.

[ policy_anything ]
countryName		= supplied
commonName		= supplied

[ req ]
default_bits		= 2048
default_keyfile 	= privkey.pem
distinguished_name	= req_distinguished_name
req_extensions		= v3_req

[ req_distinguished_name ]
commonName			= Server FQDN:
commonName_default		= YourServerName.units.it
countryName			= Country Name (2 letter code)
countryName_default		= IT
countryName_min			= 2
countryName_max			= 2

[ v3_req ]
subjectAltName = @alt_names

[ alt_names ]
# aggiungere gli eventuali altri nomi a dns per cui si vuole che il certificato sia valido:
DNS.1   = dummy1.units.it
DNS.2   = dummy2.units.it
DNS.3   = dummy3.units.it
[ alt_names ]
# aggiungere gli eventuali altri nomi a dns per cui si vuole che il certificato sia valido:
DNS.1   = dummy2.units.it
DNS.2   = dummy2.univ.trieste.it
DNS.3   = dummy.univ.trieste.it

:!: l'opzione nodes non cifra simmetricamente la chiave privata in modo da poterla usare nei vari daemon (apache, ecc..) senza dover inserire interattivamente la passphrase per la decodifica ad ogni avvio di un nuovo processo o salvarla in chiaro nel sistema.

# openssl req -config openssl.cnf -new -out dummy.csr -nodes
  
Generating a 2048 bit RSA private key
......................++++++
................++++++
writing new private key to 'privkey.pem'
-----
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.
-----
Server FQDN: []:dummy.units.it
Country Name (2 letter code) [IT]:

Nella directory corrente viene generato un file dal nome privkey.pem che è la chiave privata a cui vanno dati i permessi minimi per essere usata dal servizio (server web, di posta elettronica, ecc.).

:!: Se il file esiste già, viene sovrascritto senza avviso.

Questo file privkey.pem deve rimanere SEGRETO.

Nella directory corrente viene anche generato un file dal nome dummy.csr che contiene la richiesta di certificato.

Rinnovo

:!: Se si possiede già il file della chiave privata (ad es. in caso di rinnovo), il comando tipo da dare è

# openssl req -config openssl.cnf -key privkey.pem -out dummy.csr -new

:!: Se si ritiene che la chiave privata sia stata compromessa o usa crittografia troppo debole, il comando tipo da dare è

 openssl req -config openssl.cnf -new -keyout <nome-del-file-che-conterrà-la-chiave-privata> -out <nome-del-file-che-conterrà-la-richiesta-di-certificato> -nodes