GNU/Linux >> Tutoriels Linux >  >> AlmaLinux

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

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 tutoriel suivant, vous apprendrez comment installer Apache Web Server sur AlmaLinux 8.

Prérequis

  • OS recommandé : AlmaLinux 8.
  • Compte utilisateur : Un compte utilisateur avec des privilèges sudo ou accès root (commande su) .

Mise à jour du système d'exploitation

Mettez à jour votre AlmaLinux système d'exploitation pour s'assurer que tous les packages existants sont à jour :

sudo dnf update && sudo dnf upgrade -y

Le tutoriel utilisera la commande sudo et en supposant que vous avez le statut sudo . Pour vérifier le statut sudo sur votre compte :

sudo whoami

Exemple de sortie montrant l'état de sudo :

[joshua@localhost ~]$ sudo whoami
root

Si vous n'avez pas configuré de compte utilisateur sudo et que vous souhaitez le faire, consultez notre tutoriel sur Comment ajouter un utilisateur à Sudoers sur AlmaLinux .

Pour utiliser le compte racine , utilisez la commande suivante avec le mot de passe root pour vous connecter.

su

Installer Apache (HTTPD)

Apache, par défaut, est dans le flux de l'application AlmaLinux 8. 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 dnf install httpd

Exemple de résultat :

Tapez "O" , puis appuyez sur "ENTER KEY" pour continuer.

Ensuite, par défaut Apache (HTTPD) est désactivé et non activé. Tout d'abord, démarrez le service.

sudo systemctl start httpd

En option, activez Apache au démarrage du système.

sudo systemctl enable httpd

Exemple de résultat en cas de succès :

Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

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

systemctl status httpd

Exemple de sortie si tout va bien :

Configurer les règles de pare-feu

Il n'ajoute pas automatiquement de règles de pare-feu aux ports standard 80 ou 443 lors de l'installation d'Apache. Avant de continuer, vous devez définir les règles suivantes, cela dépendra des ports que vous utiliserez, mais toutes les options sont répertoriées.

Ouvrir le port 80 ou HTTP :

sudo firewall-cmd --permanent --zone=public --add-service=http

Ouvrir le port 443 ou HTTPS :

sudo firewall-cmd --permanent --zone=public --add-service=https

Recharger le pare-feu pour appliquer les modifications

sudo firewall-cmd --reload

Vérifier le serveur Web Apache

Maintenant que vous avez installé et configuré, 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 dnf 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 vous 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.

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

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 thanks to Linuxcapable.com</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. Par défaut, les répertoires requis devront être créés et configurés.

Tout d'abord, rendez les répertoires nécessaires pour les sites disponibles et activés pour les sites. Les utilisateurs de Nginx connaissent également cette configuration.

sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled

La prochaine étape que vous devez faire est de demander à Apache de rechercher les fichiers de l'hôte virtuel qui devront être situés dans /etc/httpd/sites-available répertoire.

Ouvrez le fichier de configuration.

sudo nano /etc/httpd/conf/httpd.conf

Ajoutez ce qui suit à la fin du fichier.

IncludeOptional sites-enabled/*.conf

En option, vous pouvez désactiver le dossier par défaut dans lequel Apache recherche les fichiers d'hôtes virtuels qui souhaitaient peut-être éviter toute confusion. Placez simplement un commentaire à côté de IncludeOptional conf.d/*.conf .

Exemple :

#IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf

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

Ensuite, utilisez votre éditeur de texte préféré pour créer un fichier de configuration d'hôte virtuel situé dans /etc/httpd/sites-available/example_domain.conf comme ci-dessous :

sudo nano /etc/httpd/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 /var/www/example_domain/error.log
    CustomLog /var/www/example_domain/requests.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

L'étape suivante consiste à activer l'hôte virtuel. Au départ, vous avez créé deux répertoires, sites-available et sites activés. Maintenant, vous devrez créer un lien symbolique à sites activés pour activer l'hôte virtuel.

Pour créer un lien symbolique, utilisez l'exemple suivant dans votre terminal.

sudo ln -s /etc/httpd/sites-available/example_domain.conf /etc/httpd/example_domain.conf

Une fois cela fait, redémarrez le service Apache.

sudo systemctl restart httpd

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 EPEL référentiel et le mod_ssl package pour des packages et une sécurité mieux mis à jour.

sudo dnf install epel-release mod_ssl -y

Ensuite, installez le package certbot comme suit :

sudo dnf 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 .

En option, vous pouvez définir une tâche cron pour renouveler automatiquement les certificats. Certbot propose un script qui le fait automatiquement, et vous pouvez d'abord tester pour vous assurer que tout fonctionne en effectuant une simulation.

sudo certbot renew --dry-run

Si tout fonctionne, ouvrez votre fenêtre crontab en utilisant la commande de terminal suivante.

sudo crontab -e

Ensuite, spécifiez l'heure à laquelle il doit se renouveler automatiquement. Cela doit être vérifié quotidiennement au minimum, et si le certificat doit être renouvelé, le script ne mettra pas à jour le certificat. Si vous avez besoin d'aide pour trouver un bon moment pour vous installer, utilisez l'outil gratuit crontab.guru.

00 00 */1 * * /usr/sbin/certbot-auto renew

Enregistrer (CTRL+O) puis quittez (CTRL+X), et le cronjob sera automatiquement activé.

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/www/example_domain avec custom.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 httpd

Pour démarrer le serveur Web Apache :

sudo systemctl start httpd

Pour redémarrer le serveur Web Apache :

sudo systemctl restart httpd

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

sudo systemctl reload httpd

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

sudo systemctl disable httpd

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

sudo systemctl enable httpd

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. Habituellement, la mise à niveau est assez sûre, mais parfois des bogues peuvent survenir comme toute mise à niveau logicielle.

Pour mettre à jour Apache, utilisez la commande suivante :

sudo dnf upgrade

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

sudo dnf 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 dnf autoremove httpd

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


AlmaLinux
  1. Comment installer WordPress avec Apache et Let's Encrypt SSL sur Debian 11

  2. Comment installer Let's Encrypt SSL dans Apache sur Debian 11

  3. Comment installer Apache avec Let's Encrypt sur RHEL 8

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

  5. Comment installer Let's Encrypt SSL avec Apache sur Debian 11

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

Comment installer Nginx avec Let's Encrypt SSL sur Fedora 35

Comment installer Let's Encrypt SSL sur Ubuntu avec Apache

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

Comment sécuriser Apache avec le certificat SSL Let's Encrypt sur CentOS 8