4 246
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 | ||
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 | ||
</pre> | |||
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 | ||
</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. |