« Installation et configuration de OpenSSL » : différence entre les versions

Aller à la navigation Aller à la recherche
aucun résumé des modifications
Aucun résumé des modifications
Ligne 215 : Ligne 215 :
</pre>
</pre>


L'autorité de certification root est maintenant créée. Nous allons créer l'autorité intermédiaire :
L'autorité de certification root est maintenant créée. Nous allons créer l'autorité intermédiaire.
On commence par créer une nouvelle clé privé ainsi qu'une demande de certificat :
<pre>
<pre>
cd /etc/ssl/core_ca
cd /etc/ssl/core_ca
#On commence par créer une nouvelle clé privé ainsi qu'une demande de certificat
openssl req -newkey rsa:4096 -keyout private/core_ca.key -out core_ca.req
openssl req -newkey rsa:4096 -keyout private/core_ca.key -out core_ca.req
#Puis on signe le certificat en utilisant la ca par défaut (défini dans le fichier openssl.cnf), c'est-à-dire, la CA_ROOT.
</pre>
#Notez qu'on précise qu'il fait configurer ce nouveau certificat en utilisant la section CORE_CA du fichier de configuration.
Puis on signe le certificat en utilisant la ca par défaut (défini dans le fichier openssl.cnf), c'est-à-dire, la CA_ROOT.
Notez qu'on précise qu'il faut configurer ce nouveau certificat en utilisant la section CORE_CA du fichier de configuration.
<pre>
openssl ca -extensions CORE_CA -in core_ca.req -out core_ca.pem
openssl ca -extensions CORE_CA -in core_ca.req -out core_ca.pem
#enfin, on s'assure que la clé privée de cette nouvelle autorité est elle aussi à l'abris.
$ chmod -R 600 private/
</pre>
</pre>
Enfin, on s'assure que la clé privée de cette nouvelle autorité est elle aussi à l'abri :
<pre>
chmod -R 600 private/
</pre>
On peut maintenant créer des certificats et les signer avec notre autorité intermédiaire.
Pour générer la clé privé et la demande de certificat :
<pre>
openssl req -newkey rsa:2048 -keyout cle-privee.key -out cle-publique.req
</pre>
Puis on signe le certificat. L'option <code>-name</code> permet de préciser qu'il faut utiliser l'autorité <code<core_ca</code> pour signer notre nouveau certificat.
<pre>
openssl ca -name core_ca -in cle-publique.req -out certificat.pem
</pre>
Pour que les clients (http, mail, ftp, ...) reconnaissent comme valide les certificats que vous signez avec votre AC il faut ajouter le fichier <code>/etc/ssl/root_ca/root_ca.pem</code> (et <code>/etc/ssl/core_ca/core_ca.pem</code> si votre serveur est mal configuré) à leur liste d'autorité de certification valide.
Par exemple, pour firefox, il faut aller dans l'onglet <code>Avancé</code> de la configuration, sélectionner l'onglet <code>Chiffrement</code>, cliquer sur <code>Afficher les Certificats</code>, sélectionner l'onglet <code>Autorités</code> et cliquer sur <code>Importer</code> pour importer son certificat.
=Générer des certificats serveurs=
Pour commencer, ajoutez la section suivante dans votre fichier /etc/ssl/openssl.cnf :
<pre>
[SERVER_SSL]
nsComment                      = "SSL Server Certificate"
subjectKeyIdentifier            = hash
authorityKeyIdentifier          = keyid,issuer:always
issuerAltName                  = issuer:copy
subjectAltName                  = DNS:www.server.com, DNS:webmail.server.com
basicConstraints                = critical,CA:FALSE
keyUsage                        = digitalSignature, nonRepudiation, keyEncipherment
nsCertType                      = server
extendedKeyUsage                = serverAuth
</pre>
On génère la clé privé et la demande de certificat
<pre>
openssl req -newkey rsa:2048 -keyout cle-privee.key -out cle-publique.req
</pre>
Puis on signe le certificat. L'option <code>-name</code> permet de préciser qu'il faut utiliser l'autorité <code>core_ca</code> pour signer notre nouveau certificat.
<pre>
openssl ca -name core_ca -extensions SERVER_SSL -in cle-publique.req -out certificat.pem
</pre>
Générer des certificats clients
Ajoutez la section suivante dans votre fichier /etc/ssl/openssl.cnf :
<pre>
[CLIENT_SSL]
nsComment                      = "SSL Client Certificate"
subjectKeyIdentifier            = hash
authorityKeyIdentifier          = keyid,issuer:always
issuerAltName                  = issuer:copy
subjectAltName                  = critical,email:copy,email:root@server.com,email:admin@server.com
basicConstraints                = critical,CA:FALSE
keyUsage                        = digitalSignature, nonRepudiation
nsCertType                      = client
extendedKeyUsage                = clientAuth
</pre>
La génération du couple de clé repose sur le même principe que pour un serveur.
4 203

modifications

Menu de navigation