Modification de OpenSSL : Configuration
La modification peut être annulée. Veuillez vérifier les différences ci-dessous pour voir si c’est bien ce que vous voulez faire, puis publier ces changements pour finaliser l’annulation de cette modification.
Version actuelle | Votre texte | ||
Ligne 1 : | Ligne 1 : | ||
{{ | {{EnCours|auteur=Adadov}} | ||
=Introduction= | |||
Protéger les données qui transitent au travers des différents protocoles peut parfois être primordial. Le chiffrement le plus utilisé actuellement est SSL. Le principe de SSL est basé sur l'utilisation de deux clés : une clé publique qui sert à déchiffrer et une clé privée qui sert à chiffrer (on parle de chiffrement asymétrique). La clé privée doit rester confidentielle alors que la clé publique peut-être transmise sans problème à tous le monde. | Protéger les données qui transitent au travers des différents protocoles peut parfois être primordial. Le chiffrement le plus utilisé actuellement est SSL. Le principe de SSL est basé sur l'utilisation de deux clés : une clé publique qui sert à déchiffrer et une clé privée qui sert à chiffrer (on parle de chiffrement asymétrique). La clé privée doit rester confidentielle alors que la clé publique peut-être transmise sans problème à tous le monde. | ||
La validité des clés publiques est assurée par une autorité de certification. | La validité des clés publiques est assurée par une autorité de certification. | ||
Ligne 67 : | Ligne 67 : | ||
Exécutez les commandes suivantes : | Exécutez les commandes suivantes : | ||
<pre> | |||
mkdir -p /opt/ssl/{root,ssl}_ca/{certs,crl,newcerts,private} | |||
cd /opt/ssl | cd /opt/ssl | ||
touch {root,ssl}_ca/index.txt | touch {root,ssl}_ca/index.txt | ||
echo 01 > root_ca/serial | echo 01 > root_ca/serial | ||
echo 01 > ssl_ca/serial | echo 01 > ssl_ca/serial | ||
</pre> | |||
== | ==le fichier /etc/openssl.cnf== | ||
Ensuite nous allons configurer <code>/etc/ssl/openssl.cnf</code> pour qu'il reconnaisse cette arborescence. | Ensuite nous allons configurer <code>/etc/ssl/openssl.cnf</code> pour qu'il reconnaisse cette arborescence. | ||
La configuration est divisée en plusieurs sections qui commencent chacune par <code>[ nom_de_section ]</code>. | La configuration est divisée en plusieurs sections qui commencent chacune par <code>[ nom_de_section ]</code>. | ||
Ligne 192 : | Ligne 192 : | ||
==Création de l'autorité root== | ==Création de l'autorité root== | ||
Maintenant nous pouvons créer le certificat de l'autorité de certification : | Maintenant nous pouvons créer le certificat de l'autorité de certification : | ||
<pre> | |||
cd /etc/ssl/root_ca/ | |||
openssl req -x509 -config /etc/ssl/openssl.cnf -newkey rsa:4096 -extensions ROOT_CA -days 3650 -keyout private/root_ca.key -out root_ca.pem | openssl req -x509 -config /etc/ssl/openssl.cnf -newkey rsa:4096 -extensions ROOT_CA -days 3650 -keyout private/root_ca.key -out root_ca.pem | ||
</pre> | |||
Quelques explications : | Quelques explications : | ||
Ligne 209 : | Ligne 209 : | ||
Pour s'assurer de la sécurité de la clé privée : | Pour s'assurer de la sécurité de la clé privée : | ||
<pre> | |||
chmod -R 600 /etc/ssl/root_ca/private | |||
</pre> | |||
==Création de l'autorité intermédiaire== | ==Création de l'autorité intermédiaire== | ||
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 : | On commence par créer une nouvelle clé privé ainsi qu'une demande de certificat : | ||
<pre> | |||
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. | 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. | 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 | |||
</pre> | |||
Enfin, on s'assure que la clé privée de cette nouvelle autorité est elle aussi à l'abri : | 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. | 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 : | 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. | 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. | 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. | ||
Ligne 252 : | Ligne 262 : | ||
On génère la clé privé et la demande de certificat : | 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 : | 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= | =Générer des certificats clients= | ||
Ligne 276 : | Ligne 290 : | ||
=Révoquer un certificat= | =Révoquer un certificat= | ||
<pre>openssl ca -revoke blah.pem</pre> | |||
[[Category:SysAdmin]] | [[Category:SysAdmin]] | ||
[[Category: | [[Category:security]] | ||