GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer et configurer Apache avec Let's Encrypt TLS/SSL sur Ubuntu 20.04

Apache , également connu sous le nom de serveur HTTP Apache, a été l'une des applications de serveur Web les plus utilisées dans le monde au cours des dernières décennies. Il s'agit d'un logiciel d'application Web gratuit et open source géré par Apache Software Foundation . Apache fournit des fonctionnalités puissantes avec des modules chargeables dynamiquement, une intégration facile avec d'autres logiciels et la gestion des fichiers statiques, entre autres fonctionnalités populaires.

Dans le didacticiel suivant, vous apprendrez comment installer Apache Web Server sur Ubuntu 20.04.

Prérequis

  • OS recommandé : Ubuntu 20.04 – facultatif (Ubuntu 21.04 et Linux Mint 20)
  • Compte utilisateur : Un compte utilisateur avec un accès sudo ou root.

Mise à jour du système d'exploitation

Avant toute chose, mettez à jour votre Ubuntu système d'exploitation pour s'assurer que tous les packages existants sont à jour :

sudo apt update && sudo apt upgrade -y

Accès racine ou sudo

Par défaut, le compte créé avec Ubuntu donnait le statut sudo. Néanmoins, supposons que vous deviez fournir un accès sudo/root à des comptes supplémentaires. Dans ce cas, vous devez soit avoir accès au mot de passe root utiliser la commande su ou visitez notre tutoriel sur Comment ajouter un utilisateur à Sudoers sur Ubuntu.

Méthode 1. Installer Apache à partir du référentiel Ubuntu

La première option pour installer Apache consiste à utiliser le référentiel Ubuntu par défaut. Ceci est plus pratique pour la plupart des utilisateurs car il est très stable et sécurisé.

Pour installer Apache, ouvrez votre terminal et exécutez la commande suivante :

sudo apt install apache2 -y

Ensuite, vérifiez que l'installation a réussi en vérifiant la version de build d'Apache :

sudo apache2 --version

Exemple de résultat :

Server version: Apache/2.4.51

Vérifiez si Apache2 s'exécute correctement à l'aide du systemctl suivant commande :

systemctl status apache2

Exemple de sortie si tout va bien :

Méthode 2. Installer le dernier Apache d'Ondřej Surý PPA

Par défaut, Apache est disponible dans les dépôts de logiciels d'Ubuntu , ce qui facilite son installation. Cependant, comme la plupart des référentiels sur les versions Ubuntu LTS, il peut souvent manquer ce qui est actuel, pas tant pour les risques de sécurité. Pourtant, les nouvelles fonctionnalités et améliorations manquent.

Il est recommandé pour Ubuntu d'installer la version Ondřej Surý d'Apache 2 , qui est le plus à jour et pré-construit avec des modules très largement utilisés.

Tout d'abord, ajoutez Ondřej Surý PPA pour Ubuntu comme suit :

sudo add-apt-repository ppa:ondrej/apache2 -y && sudo apt update

Maintenant, vous pouvez installer le package Apache 2 avec la commande suivante :

sudo apt install apache2

L'installation installera toutes les dépendances nécessaires.

Si vous ne souhaitez pas utiliser le PPA, vous pouvez ignorer son ajout et installer Apache 2 à partir du référentiel d'Ubuntu.

Une fois installé, confirmez la version en exécutant la commande suivante :

apache2 -v

Exemple de résultat :

Server version: Apache/2.4.51 (Ubuntu)

Notez que les deux référentiels sont sur la même version au moment du tutoriel en raison d'une mise à jour URGENT CVE. Normalement, Ondřej Surý PPA est en avance sur Ubuntu 20.04 par défaut à tout moment.

Vérifiez si Apache2 s'exécute correctement à l'aide du systemctl suivant commande :

sudo systemctl status apache2

Exemple de sortie si tout va bien :

Configurer le pare-feu UFW pour Apache

Après avoir installé le serveur Web Apache 2, vous devrez modifier les règles UFW pour autoriser l'accès extérieur aux ports Web par défaut. Heureusement, lors de l'installation, Apache s'enregistre auprès d'UFW pour fournir quelques profils pouvant être utilisés pour activer ou désactiver l'accès, ce qui facilite et accélère la configuration.

Tout d'abord, listez les profils d'application pour voir les profils Apache disponibles par la commande suivante :

sudo ufw app list

Exemple de résultat :

Available applications:
  Apache
  Apache Full
  Apache Secure

À partir de la sortie ci-dessus, vous avez le choix entre trois options de profil. Pour le décomposer, Apache fonctionne sur le port 80 (HTTP), Apache Secure fonctionne sur le port 443 (HTTPS) et Apache complet est une combinaison de permettre les deux. Le plus courant est Apache Full ou Apache Secure.

Pour le tutoriel, puisque nous n'avons pas configuré SSL, nous allons activer le profil (Apache) avec la commande suivante :

sudo ufw allow 'Apache'

Exemple de résultat :

Rule added
Rule added (v6)

Comme ci-dessus, les règles ont été ajoutées pour IPV4 et IPV6. Plus tard, vous pourrez désactiver ce profil et activer la sécurité uniquement ou désactiver la règle Apache et utiliser la règle Apache complète à la place.

Vérifier le serveur Web Apache

Maintenant que vous avez installé et configuré le pare-feu UFW, il est temps de tester pour voir si Apache 2 est accessible et fonctionne correctement en demandant une page.

Vous pouvez accéder à la page d'accueil Apache par défaut pour vérifier si le logiciel fonctionne correctement via l'adresse IP de votre serveur. Pour le savoir, si vous ne le savez pas, utilisez la commande suivante ci-dessous :

hostname -I

Vous devriez récupérer l'adresse IP interne sur laquelle se trouve le serveur, par exemple :

###Example Only###
192.168.50.15 

Vous pouvez obtenir 2 à 3 résultats en retour. Essayez chacun jusqu'à ce que vous trouviez la bonne adresse IP.

Si vous avez besoin de votre adresse IP publique (externe), utilisez plutôt la commande suivante :

curl -4 icanhazip.com

Vous devrez peut-être installer le package CURL s'il est manquant. Pour cela, exécutez la commande suivante :

sudo apt install curl -y

Une fois que vous avez l'adresse IP de vos serveurs, ouvrez votre navigateur Internet préféré et entrez ce qui suit :

http://your_server_ip

Vous devriez obtenir la page suivante dans votre navigateur Internet :

Félicitations, vous avez installé le serveur Web Apache 2 et travaillez actuellement.

L'étape suivante consiste à configurer des hôtes virtuels.

Créer et/ou configurer des hôtes virtuels pour Apache

À l'aide du serveur Web Apache, vous pouvez créer des hôtes virtuels pour gérer les configurations de plusieurs domaines exécutés sur un même serveur. Si vous avez déjà utilisé Nginx, c'est l'équivalent des blocs serveur. Dans l'exemple ci-dessous, le tutoriel créera un domaine example-domain.com que vous remplacerez par votre nom de domaine.

Par défaut, Apache sur Ubuntu 20.04 a un bloc de serveur activé par défaut qui est configuré pour servir des documents à partir de /var/www/html annuaire. Si vous exploitez un site Web, vous pouvez modifier ce bloc de serveur pour l'adapter au vôtre. Cependant, si vous hébergez plusieurs sites Web, vous devez créer une nouvelle structure de répertoires pour vos différents domaines.

Créer et/ou configurer des répertoires

Tout d'abord, laissez /var/www/html répertoire intact comme répertoire par défaut, puis créez un nouveau répertoire, par exemple-domaine.com, comme ci-dessous :

sudo mkdir /var/www/example_domain

L'étape suivante consiste à attribuer la propriété du répertoire avec la variable d'environnement $USER :

sudo chown -R $USER:$USER /var/www/example_domain

Habituellement, les autorisations des racines Web doivent être définies correctement et vous pouvez vérifier à l'aide de la commande -ls l :

-ls l /var/www/example_domain
ls -l /var/www/example_domain

Exemple de résultat :

drwxr-xr-x 2 joshua joshua 4096 Oct 10 11:46 example_domain

Comme vous pouvez le voir, nous avons la permission de drwxr-xr-x, qui est l'équivalent de chmod 755 . Si vous ne disposez pas de cet ensemble d'autorisations, exécutez la commande suivante :

sudo chmod -R 755 /var/www/example_domain

Créez maintenant un exemple de page index.html à l'aide de votre éditeur de texte préféré. Le tutoriel utilisera nano comme ci-dessous :

sudo nano /var/www/example_domain/index.html

Dans le fichier, copiez et collez le code suivant :

<html>
    <head>
        <title>Welcome to Website!</title>
    </head>
    <body>
        <h1>Success! The virtual host is working! You did not mess it up.</h1>
    </body>
</html>

Enregistrez le fichier (CTRL+O) , puis quittez (CTRL+X) .

Créer un hôte virtuel

Maintenant que vous avez créé une page de destination et défini la propriété et les autorisations correctes. Vous pouvez maintenant procéder à la création d'un fichier d'hôte virtuel. Par défaut, tous les fichiers de l'hôte virtuel devront être situés dans /etc/apache2/sites-available/ répertoire.

Tout d'abord, utilisez votre éditeur de texte préféré pour créer un fichier de configuration situé dans /etc/apache2/sites-available/example_domain.conf comme ci-dessous :

sudo nano /etc/apache2/sites-available/example_domain.conf

Maintenant, copiez et collez ce qui suit dans le fichier de bloc de configuration, notez pour remplacer votre ServerName, ServerAlias, et racine du document avec le vôtre :

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName example_domain
    ServerAlias www.example_domain
    DocumentRoot /var/www/example_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Remarque, n'oubliez pas de remplacer les directives Server requises par les vôtres.

Enregistrez le fichier de configuration en utilisant (CTRL+O) et quittez avec (CTRL+X) .

Activer l'hôte virtuel

Maintenant que votre fichier de configuration d'hôte virtuel est prêt, il est temps de l'activer. Avec Apache, contrairement à Nginx, où vous créeriez un lien symbolique à l'aide de la commande ln -s, Apache utilise ses outils, comme le montrera le tutoriel ci-dessous :

Tout d'abord, désactivez le fichier de blocage de serveur installé par défaut existant 000-default.conf avec la commande a2dissite :

sudo a2dissite 000-default.conf

Activez maintenant votre fichier d'hôte virtuel avec le a2ensite commande :

sudo a2ensite example_domain.conf

Maintenant, comme la plupart des applications de serveur Web, Apache a un essai à blanc une fonction. Avant de mettre en ligne, testez votre fichier de configuration à l'aide de la commande suivante :

sudo apache2ctl configtest

Si tout fonctionne correctement, l'exemple de sortie devrait être :

Syntax OK

Redémarrez maintenant le serveur Web Apache pour faire vivre votre nouvel hôte virtuel avec la commande suivante :

sudo systemctl restart apache2

Apache devrait actuellement servir la page de destination que vous avez créée pour votre nouveau domaine. Pour tester cela, ouvrez votre navigateur Internet et saisissez votre nom de domaine HTTP://example_domain où vous devriez obtenir la page de destination suivante que vous avez créée dans le fichier index.html :

Félicitations, vous avez créé avec succès votre hôte virtuel et l'avez fait fonctionner avec succès sur votre domaine.

Sécurisez Apache avec le certificat gratuit Let's Encrypt SSL

Idéalement, vous voudriez exécuter votre Apache sur HTTPS en utilisant un certificat SSL . La meilleure façon de le faire est d'utiliser Let's Encrypt, une autorité de certification gratuite, automatisée et ouverte gérée par le Groupe de recherche sur la sécurité Internet (ISRG) à but non lucratif .

Tout d'abord, installez le package certbot comme suit :

sudo apt install python3-certbot-apache -y

Une fois installé, exécutez la commande suivante pour lancer la création de votre certificat :

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d www.example.com

Il s'agit de la configuration idéale qui inclut les redirections HTTPS 301 forcées, l'en-tête Strict-Transport-Security et l'agrafage OCSP. Assurez-vous simplement d'adapter l'adresse e-mail et le nom de domaine à vos besoins.

Maintenant, votre URL sera https://www.example.com au lieu de HTTP://www.example.com .

Remarque, si vous utilisez l'ancienne URL HTTP , il redirigera automatiquement vers HTTPS .

Gérer le service Apache

Maintenant qu'Apache s'exécute correctement sur votre serveur, voici quelques notes clés de gestion.

Journaux du serveur Apache

Les journaux du serveur Apache se trouvent dans le répertoire /var/log/apache2/ avec access.log et error.log étant respectueusement les noms d'accès et d'erreur par défaut donnés. Cela peut être remplacé par d'autres noms dans votre fichier de configuration d'hôte virtuel à l'avenir.

Commandes Apache

Les commandes suivantes que vous utiliserez sans aucun doute dans votre gestion quotidienne lorsque vous travaillez avec Apache. Certains des plus courants sont :

Pour arrêter le serveur Web Apache :

sudo systemctl stop apache2

Pour démarrer le serveur Web Apache :

sudo systemctl start apache2

Pour redémarrer le serveur Web Apache :

sudo systemctl restart apache2

Pour recharger le serveur Web Apache (Pour des modifications plus mineures ne nécessitant pas de redémarrage) :

sudo systemctl reload apache2

Pour désactiver Apache au démarrage du serveur :

sudo systemctl disable apache2

Pour démarrer Apache au démarrage du serveur (automatiquement activé à l'installation) :

sudo systemctl enable apache2

Comment mettre à jour Apache

Pour mettre à jour Apache à l'avenir, cela se fait avec la commande que vous avez utilisée pour vérifier si votre système est à jour. Notez que créez toujours des sauvegardes ou des images si vous avez un service Apache exécutant des services critiques. En règle générale, la mise à niveau est assez sûre, mais des bogues peuvent parfois survenir, comme toute mise à niveau logicielle.

Pour mettre à jour Apache, utilisez la commande suivante :

sudo apt update

Si une mise à niveau Apache est disponible, utilisez la commande :

sudo apt upgrade

Comment supprimer (désinstaller) Apache

Pour supprimer Apache si vous ne l'utilisez plus, cela peut être fait à l'aide de la commande suivante :

sudo apt autoremove apache2 --purge

Cette commande supprimera également toutes les dépendances inutilisées fournies avec l'installation.


Ubuntu
  1. Comment installer et configurer Nextcloud avec Apache sur Ubuntu 18.04

  2. Comment installer et configurer ownCloud avec Apache sur Ubuntu 18.04

  3. Comment installer et configurer un serveur FTP (vsftpd) avec SSL/TLS sur Ubuntu 20.04

  4. Comment installer Let's Encrypt SSL sur Ubuntu 18.04 avec Nginx

  5. Comment installer Let's Encrypt sur Ubuntu 20.04 avec Apache

Comment installer et configurer Apache (httpd) avec Let's Encrypt TLS/SSL sur AlmaLinux 8

Comment installer Let's Encrypt SSL avec Apache sur CentOS 7

Comment installer Let's Encrypt SSL sur Ubuntu avec Apache

Comment installer Let's Encrypt SSL avec Nginx sur Ubuntu 16.04 LTS

Comment installer Nginx avec Let's Encrypt SSL sur Ubuntu 20.04 LTS

Comment installer Apache avec Let's Encrypt SSL sur Ubuntu 20.04 LTS