Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:apache2:tp01 [24/09/2014 15:26] Hypathie [OpenSSL : créer un certificat avec apache2] |
doc:reseau:apache2:tp01 [25/09/2014 09:04] Hypathie [OpenSSL : créer un certificat avec apache2] |
||
---|---|---|---|
Ligne 141: | Ligne 141: | ||
* **D'abord, un fichier contenant le code source de la page web**: | * **D'abord, un fichier contenant le code source de la page web**: | ||
- | Il doit être créé dans /var/www/, mais on placera ce fichier de code, dans un dossier qu'il faudra créer dans /var/www/dossier-du-site/fichier.html. | + | Il doit être créé dans /var/www/ : /var/www/dossier-du-site/fichier.html. |
* **Ensuite pour que apache gère ce site** : | * **Ensuite pour que apache gère ce site** : | ||
Ligne 775: | Ligne 775: | ||
</note> | </note> | ||
- | ====Créer un certificat auto-signé pour le site "default-sll"==== | + | ====Créer un certificat auto-signé pour le site "default-ssl"==== |
Cela ne garantira pas d'une éventuelle usurpation d'identité.\\ | Cela ne garantira pas d'une éventuelle usurpation d'identité.\\ | ||
Le certificat auto-signé c'est bien pour l'apprentissage en local ! | Le certificat auto-signé c'est bien pour l'apprentissage en local ! | ||
Ligne 788: | Ligne 788: | ||
Il doit y avoir ''ssl.conf'' et ''ssl.load''. Sinon il faut **installer** (ne pas l'activer tout de suite).\\ | Il doit y avoir ''ssl.conf'' et ''ssl.load''. Sinon il faut **installer** (ne pas l'activer tout de suite).\\ | ||
- | ====Configurer un virualhost ==== | + | ====Configurer un virualhost ssl==== |
- | ===Le virtualhost "defaut-ssl" === | + | ===Création des clé et certificat === |
- | + | ||
- | Sur debian, c'est le fichier **/etc/apache2/sites-available/default-ssl** qui est le Virtualhost par défaut. Il faut lui créer un certificat qui servira pour le virtualhost de "monsite.com". | + | |
Pour cela on va se servir de l'utilitaire openssl. | Pour cela on va se servir de l'utilitaire openssl. | ||
- | * Création du certificat : | + | * Création du répertoire où l'on rangera sa clé privée : |
<code root>cd /etc/apache2/ && mkdir ssl</code> | <code root>cd /etc/apache2/ && mkdir ssl</code> | ||
- | <code root>openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt | + | * Création de la clé privée et du certificat : |
- | Generating a 1024 bit RSA private key</code> | + | <note> |
+ | __**La commande qui suit cette note, peut s'effectuer en quatre étapes:**__\\ | ||
+ | |||
+ | 1) **Création de la clé privée** : par exemple ''openssl genrsa 1024 > /etc/apache2/ssl/apache.key'' | ||
+ | |||
+ | 2) **À partir de cette clé privée, on crée un certificat CSR qui contient une clé publique** à faire signer : ''openssl req -new -key /etc/apache2/ssl/apache.key > /etc/apache2/ssl/apache.csr'' | ||
+ | |||
+ | => C'est ce certificat qu'il faut faire signer par une autorité de certification (CA) | ||
+ | Ou qu'il faudra auto-signer. | ||
+ | |||
+ | 3) **On décide d'auto-signer ce certificat donc on crée une clé privée qui serait celle du CA officielle** : ''openssl genrsa -des3 1024 > ca.key''\\ | ||
+ | -on peut ajouter -des3 qui introduit l'usage d'une "passphrase"\\ | ||
+ | -c'est cette clé privée qui signera tous les certificats que l'on émettra ; cette "passphrase" sera donc demandée à chaque utilisation de la clé. | ||
+ | |||
+ | 4) **Puis à partir de la clé privée, on crée un certificat x509 pour une durée de validité d'un an auto-signé**\\ ''openssl req -new -x509 -days 365 -key ca.key > ca.crt''\\ | ||
+ | -On répondrait à nouveau aux questions, mais on changerait la réponse relative à "Common Name". | ||
+ | |||
+ | 5) **Enfin il faudrait faire signer notre certificat de demande de signature par le certificat du CA (qui a été fait par nous-même) :**\\ | ||
+ | ''openssl x509 -req -in /etc/apache2/ssl/apache.csr -out /etc/apache2/ssl/apache.crt -CA ca.crt -CAkey ca.key\ | ||
+ | -CAcreateserial -CAserial ca.srl''\\ | ||
+ | |||
+ | Dans ce qui suit on a sauté les quatre premières étapes.\\ Mais pour créer une connexion privée et sécurisée entre le serveur et le client qui s'y connecterait, il faudrait utiliser le | ||
+ | </note> | ||
+ | |||
+ | <code root>openssl req -x509 -nodes -days 365\ | ||
+ | -newkey rsa:1024 -keyout /etc/apache2/ssl/apache.key\ | ||
+ | -out /etc/apache2/ssl/apache.crt | ||
+ | </code> | ||
Ligne 809: | Ligne 834: | ||
<note tip> | <note tip> | ||
__**Il faut répondre à une suite de question**__ : | __**Il faut répondre à une suite de question**__ : | ||
- | La plus importante est "Common Name": il faut répondre par le nom de domaine ou l'ip public du serveur concerné. Dans le cas de cette exemple, l'ip locale (fixe) du serveur fera l'affaire.\\ | + | La plus importante est "Common Name": il faut répondre par le nom de domaine ou l'ip public du serveur concerné. Dans le cas de cette exemple, l'ip locale (fixe) du serveur fera l'affaire ou nom de domaine.\\ |
- | Par exemple : | + | Par exemple :\\ |
- | Country Name (2 letter code) [AU]:FR | + | Country Name (2 letter code) [AU]:FR\\ |
- | State or Province Name (full name) [Some-State]:France | + | State or Province Name (full name) [Some-State]:France\\ |
- | Locality Name (eg, city) []:Chambery | + | Locality Name (eg, city) []:Chambery\\ |
- | Organization Name (eg, company) [Internet Widgits Pty Ltd]: | + | Organization Name (eg, company) [Internet Widgits Pty Ltd]:\\ |
- | Organizational Unit Name (eg, section) []: | + | Organizational Unit Name (eg, section) []:\\ |
- | Common Name (e.g. server FQDN or YOUR name) []:monsite.com | + | Common Name (e.g. server FQDN or YOUR name) []:192.168.0.13 \\ |
- | Email Address []:example@gmx.fr | + | Email Address []:example@gmx.fr\\ |
</note> | </note> | ||
+ | |||
+ | * Restreindre les droits sur le fichier de clé privée, aux droits de lecture seulement, et pour root: | ||
+ | <code root>chmod 400 /etc/apache2/ssl/apache.key</code> | ||
+ | |||
+ | ===Le virtualhost "defaut-ssl" === | ||
+ | |||
+ | Sur debian, c'est le fichier **/etc/apache2/sites-available/default-ssl** qui est le Virtualhost par défaut. Il faut lui créer un certificat qui servira pour le virtualhost de "monsite.com". | ||
* Il faut ensuite éditer le fichier /etc/apache2/sites-available/default-ssl pour ajouter le certificat et la clé privée. | * Il faut ensuite éditer le fichier /etc/apache2/sites-available/default-ssl pour ajouter le certificat et la clé privée. | ||
Ligne 828: | Ligne 860: | ||
SSLCertificateKeyFile /etc/apache2/ssl/apache.key</code> | SSLCertificateKeyFile /etc/apache2/ssl/apache.key</code> | ||
- | * Restreindre les droits sur le fichier de clé privée, aux droits de lecture seulement, et pour root: | ||
- | <code root>chmod 400 /etc/apache2/ssl/apache.key</code> | ||
* Il faut activer le module ssl : | * Il faut activer le module ssl : |