Si vous utilisez le serveur web Apache pour faire fonctionner un site web d'e-commerce, un client d'e-mails, ... Nous vous recommandons de chiffrer la connexion à ce genre de service gràce à l'installation d'un certificat SSL sur votre serveur. Pour cela, nous allons vous montrer comment générer des certificats SSL (gratuitement ou de manière plus professionnel en payant celui-ci) et configurer Apache pour qu'il puisse fonctionner via son protocole HTTPS (port 443).
Avant de commencer, il est recommandé de mettre à jour la liste des paquets disponibles dans les dépôts officiels d'Ubuntu car cela vous permettra de récupérer la dernière version d'OpenSSL.
Bash
apt-get update
Pour créer nos clés privées sécurisées et non sécurisées, nous allons utiliser le programme "openssl".
Pour cela, tapez la commande suivante pour l'installer (si ce n'est pas déjà fait).
Bash
apt-get install openssl
Ensuite, créez un dossier "ssl" dans le dossier d'apache.
Bash
mkdir /etc/apache2/ssl cd /etc/apache2/ssl
Commencez par créer la clé privée sécurisée.
Note :
- Si vous souhaitez faire signer votre certificat par une autorité reconnue, vous devrez peut-être choisir une autre valeur que 2048 bits.
Néanmoins, Geotrust demande maintenant des certificats en 2048 bits.
- Dans le cas d'un certificat auto-signé, utilisez une valeur plus grande car cela améliorera la sécurisation de la connexion. Par exemple : 4096.
Bash
openssl genrsa -des3 -out server.key 2048
Créez ensuite une clé privée non sécurisée.
Bash
openssl rsa -in server.key -out server.key.insecure
Renommez ensuite les clés obtenues.
Bash
mv server.key server.key.secure mv server.key.insecure server.key
Puis, créez la demande de certificat.
Note :
Plusieurs informations vous serons demandées mais la plus importante est le "Common Name (e.g. server FQDN or YOUR name)".
En effet, vous devrez y indiquer votre nom de domaine ou le sous-domaine pour lequel le certificat sera valable. Si vous souhaitez que votre certificat fonctionne sur tous les sous-domaines de votre domaine, indiquez simplement "*.votre-domaine.com".
Attention : Le caractère * peut ne pas être accepté par certaines autorités ou être plus cher qu'un certificat classique. Néanmoins, dans le cas d'un certificat auto-signé vous pourrez le faire sans problèmes.
Bash
openssl req -new -key server.key -out server.csr
Note : Basé sur la documentation officielle d'Ubuntu.
Auto-signer son certificat permet de sécuriser la connexion d'un serveur Web (par exemple) et ce gratuitement.
Néanmoins, un avertissement sera affiché la première fois au visiteur car ce certificat est "auto-signé" et qu'il n'a donc pas été vérifié par une autorité reconnue comme Symantec SSL, Geotrust, ...
Si vous ne souhaitez pas avoir cet avertissement, référez-vous au point 4 de ce tutoriel.
Pour auto-signer votre certificat, utiliser la commande suivante.
Note : La commande suivante crée un certificat valabble pendant un an (-days 365).
Bash
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Si vous ne souhaitez pas qu'un avertissement s'affiche lorsque le visiteur tente d'accéder à votre site web. Vous devez obligatoirement le faire signer par une autorité reconnue comme Symantec SSL, Geotrust, ...
Pour cela, vous allez devoir transmettre votre requête de signature de votre certificat (ou Certificate Signing Request : CSR en anglais) à l'autorité souhaitée.
Vous devrez ensuite payer le prix demandé par l'autorité en question.
Une fois le paiement effectué, vous recevrez votre certificat signé (le fichier .crt) que vous pourrez ensuite installer sur votre serveur pour sécuriser la connexion à votre serveur et ce sans avertissement pour le visiteur.
Quelques autorités connues :
- digicert
- GeoTrust
Pour sécuriser votre serveur web, commencez par activer le module "ssl" d'Apache.
Bash
a2enmod ssl
Puis, ajoutez les lignes "SSLEngine", "SSLCertificateFile" et "SSLCertificateKeyFile" dans le virtualhost correspondant au domaine pourlequel vous avez créer le certificat.
Note : Si vous ne possédez qu'un seul site sur votre serveur, vous pouvez utiliser le virtualhost "default-ssl" présent par défaut sous Ubuntu 12.04.
Pour cela, allez dans le dossier "/etc/apache2/sites-available/" et modifiez le fichier "default-ssl" ou celui correspondant au virtualhost à sécuriser via SSL.
Apache
# Virtualhost du HTTPS (port 443) <VirtualHost *:443> ServerName informatiweblan.net ServerAlias www.informatiweblan.net DocumentRoot /var/www/informatiweblan.net SSLEngine on SSLCertificateFile /etc/apache2/ssl/server.crt SSLCertificateKeyFile /etc/apache2/ssl/server.key </VirtualHost>
Modifiez ensuite le fichier "default", si vous le souhaitez, pour rediriger tous les visiteurs vers le domaine sécurisé par SSL :
Apache
# Redirection du domaine HTTP vers celui en HTTPS # Cela vous évitera d'accéder, par erreur, à la version non sécurisée de votre site. <VirtualHost *:80> ServerName informatiweblan.net ServerAlias www.informatiweblan.net Redirect / https://informatiweblan.net/ </VirtualHost>
Et pour finir, activez le site "default-ssl" et redémarrer le serveur web Apache pour prendre en compte les changements.
Bash
a2ensite default-ssl service apache2 restart
Note : Basé sur la documentation officielle d'Ubuntu-fr.
Pour tester la configuration de votre serveur, accédez à votre site web via le protocole HTTPS (port : 433) "https://www.informatiweblan.net/".
Ensuite, si vous avez utilisé un certificat auto-signé (gratuit), vous recevrez l'avertissement "Cette connexion n'est pas certifiée".
Pour que cet avertissement ne s'affiche plus, vous (et les autres visiteurs) devrez cliquer sur le bouton "Ajouter une exception". Puis, sur "Confirmer l'exception de sécurité" dans la fenêtre qui s'ouvre.
Et pour finir, vous aurez accès à votre site web de manière sécurisée.
Vous pouvez voir les dates d'expiration en cliquant sur "Afficher le certificat".
Linux 8/9/2016
Linux 24/7/2015
Linux 31/1/2014
Contenu épinglé
Contact
® InformatiWeb-Pro.net - InformatiWeb.net 2008-2022 - © Lionel Eppe - Tous droits réservés.
Toute reproduction totale ou partielle de ce site est interdite et constituerait une contrefaçon sanctionnée par les articles L.335-2 et suivants du Code de la propriété intellectuelle.
Vous devez être connecté pour pouvoir poster un commentaire