GNU/Linux >> Tutoriels Linux >  >> Linux

Certificats maîtres auto-signés sur Windows et Linux

Dans le monde informatique, la sécurisation de vos applications et domaines d'infrastructure est cruciale. Et pour atteindre le niveau de sécurité idéal, vous avez besoin d'un certificat SSL. Mais comment obtenir un certificat SSL ? L'un des moyens les plus simples et les plus économiques consiste à créer des certificats autosignés sur vos systèmes.

Les certificats auto-signés sont des certificats à clé publique que les utilisateurs peuvent générer eux-mêmes plutôt que d'être émis par une autorité de certification. Et dans ce didacticiel, vous apprendrez à générer un certificat auto-signé sur les machines Windows et Linux (gratuitement).

Lisez la suite et commencez à sécuriser vos applications et votre infrastructure !

Prérequis

Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d'avoir les éléments suivants :

  • Un appareil Windows 10+
  • Une machine Ubuntu au moins 14.04.4 LTS – Ce didacticiel utilise Ubuntu 20.04.4 LTS.
  • Apache installé sur les machines Windows et Linux.
  • OpenSSL installé sur votre ordinateur Windows – Ce didacticiel utilise OpenSSL 3.0.3 Light (32 bits).

Génération d'un certificat auto-signé sur Ubuntu

Le moyen le plus simple de tester le certificat auto-signé est sur un serveur Web, et l'un des serveurs Web les plus utilisés est Apache. Commençons donc ce tutoriel en configurant le serveur Apache déjà installé sur la machine Ubuntu.

1. Connectez-vous en SSH à votre machine virtuelle Ubuntu à l'aide de votre client SSH préféré.

2. Exécutez la commande apt update ci-dessous pour vous assurer qu'Ubuntu dispose de toutes les dernières sources de packages.

sudo apt update 

3. Ensuite, ouvrez votre navigateur Web préféré, accédez à :80 , et vous verrez que la page d'accueil d'Apache s'ouvre uniquement sur le port HTTP (non sécurisé).

4. Maintenant, exécutez chaque commande ci-dessous pour créer un répertoire nommé ~/certificates et accédez au répertoire dans lequel vous stockerez les certificats.

mkdir ~/certificates
cd ~/certificates

5. Ensuite, exécutez la commande openssl suivante pour générer une demande de signature de certificat (CSR) et une clé privée.

openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes

Une fois que vous avez exécuté la commande, entrez les détails, comme indiqué ci-dessous.

Sécuriser le serveur Apache avec un certificat SSL dans Ubuntu

Après avoir généré vos certificats, vous devrez configurer le serveur Apache pour utiliser les certificats. Mais d'abord, vous avez besoin d'un répertoire dédié pour contenir votre certificat. Vous activerez le module SSL plus tard et testerez si les certificats fonctionnent pour sécuriser votre serveur Apache.

1. Exécutez les commandes suivantes pour créer un répertoire (/etc/apache2/ssl) et déplacer les certificats du répertoire ~/certificates/ vers le répertoire /etc/apache2/ssl.

mkdir /etc/apache2/ssl
mv ~/certificates/* /etc/apache2/ssl/.

2. Ouvrez le fichier de configuration du site SSL Apache par défaut (/etc/apache2/sites-available/default-ssl.conf) et ajoutez les lignes ci-dessous. Assurez-vous de remplacer par le nom réel de votre serveur.

Dans le code ci-dessous, vous spécifiez l'emplacement (clé de certificat et fichier) où vous avez précédemment copié vos certificats.

ServerName 
SSLCertificateFile    /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ProxyPreserveHost On

3. Maintenant, exécutez chaque commande ci-dessous pour activer le module SSL, activer le site que vous avez modifié (étape 4) et redémarrer le service Apache.

# Enable the SSL module so that you can work with SSL connections.
sudo a2enmod ssl proxy proxy_http proxy_balancer
# Enable the site you modified (step four)
sudo a2ensite default-ssl.conf
# Restart the Apache service
sudo service apache2 restart

4. Enfin, accédez à nouveau à votre serveur Apache. Mais cette fois, en utilisant HTTPS, comme indiqué ci-dessous.

Comme vous pouvez le voir, Apache s'ouvre avec succès avec des connexions SSL sur un port HTTPS. Ne vous inquiétez pas si vous voyez un symbole d'avertissement affichant le message Non sécurisé. Vous recevrez cet avertissement puisque vous utilisez un certificat auto-signé (créé par vous-même) et non par l'autorité de certification.

Cliquez sur Proceed to (unsafe) pour continuer à accéder au serveur Apache.

Voyez-vous la même page que celle illustrée ci-dessous ? Toutes nos félicitations! Vous avez réussi à sécuriser le serveur Apache avec votre certificat auto-signé.

Génération d'un certificat SSL sous Windows

Auparavant, vous sécurisez un serveur Apache hébergé sur une machine Ubuntu à l'aide d'un certificat auto-signé. De la même manière, vous pouvez également sécuriser le serveur Apache sur un OS Windows.

Pour sécuriser votre serveur Apache sous Windows :

1. Ouvrez le fichier de configuration Apache (httpd.conf) à C:\Apache24\conf emplacement et décommentez la ligne ci-dessous.

La ligne suivante active le module SSL sur les machines Windows et permet à Apache de fonctionner avec le port HTTPS.

LoadModule rewrite_module modules/mod_rewrite.so

2. Ensuite, ouvrez PowerShell en tant qu'administrateur et exécutez la commande openssl suivante pour générer une demande de signature de certificat (CSR) et une clé privée.

openssl req -x509 -newkey rsa:4096 -keyout Apache.key -out Apache.crt -days 365 -nodes

Après avoir exécuté la commande, entrez les détails de votre certificat, comme indiqué ci-dessous.

3. Accédez au répertoire bin d'installation d'OpenSSL (C:\ProgramFiles\OpenSSL-Win64\bin ) et vérifiez le certificat et la clé Apache ci-dessous.

Configuration du serveur Apache pour utiliser des certificats SSL

Vous venez de générer votre certificat et votre clé pour sécuriser la connexion au serveur Apache. Mais comme avec Ubuntu, vous avez besoin d'un dossier dédié pour contenir votre certificat et votre clé et activer le module SSL.

1. Copiez votre fichier de certificat SSL (apache.crt ) et le fichier de clé privée (apache.key ) à C:\Apache24\conf dossier.

2. Modifiez le fichier de configuration Apache SSL (C:/Apache24/conf/httpd.conf ), et ajoutez les lignes suivantes ou décommentez si elles sont déjà présentes.

Les lignes ci-dessous activent le module SSL et permettent à Apache de fonctionner sur le port HTTPS.

LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

3. Maintenant, éditez le fichier Apache SSL (C:/Apache24/conf/extra/httpd-ssl.conf ) et ajoutez les lignes suivantes. Ce fichier sera appelé par httpd.conf fichier en interne tel que défini dans le httpd.conf fichier (inclure conf/extra/httpd-ssl.conf).

SSLCertificateFile "C:\Apache24\conf\apache.crt"
SSLCertificateKeyFile "C:\Apache24\conf\apache.key"

4. Exécutez les commandes suivantes sur PowerShell pour accéder au dossier bin d'installation d'Apache et démarrez le service Apache.

# Change the working directory
cd C:\ProgramFiles\OpenSSL-Win64\bin
# Start the Apache service
./httpd.exe

5. Enfin, accédez à https://localhost pour vérifier le serveur Apache.

Vous devriez voir le même message (ça marche !) sur la page, qui confirme que le serveur Apache fonctionne avec un certificat auto-signé sur une machine Windows.

Conclusion

Dans ce didacticiel, vous avez appris à configurer un serveur Web Apache sur les systèmes d'exploitation Ubuntu et Windows et à vérifier que vous pouvez accéder à une instance Apache en toute sécurité.

Maintenant, comment comptez-vous améliorer votre jeu avec Apache ? Peut-être automatiser les déploiements Web ? Ou créer un pipeline Jenkins CI CD pour améliorer votre processus de développement logiciel ?


Linux
  1. Maîtrisez la commande Linux ls

  2. Hébergement Linux vs Windows

  3. Utilisation de SNI pour héberger plusieurs certificats SSL dans Apache

  4. exFAT contre NTFS sous Linux

  5. Emplacement du certificat SSL sur UNIX/Linux

Passer de Windows à Linux

Maîtrisez la ligne de commande Linux

Comment exécuter Windows 95 sous Linux

Comment générer des certificats SSL auto-signés à l'aide d'OpenSSL

Installer des certificats SSL sur un serveur Windows

Sécurité Linux contre Windows