Comment installer Apache HTTPD sur CentOS Stream 9

Apache HTTP Server (httpd) est l'un des serveurs Web les plus populaires et les plus robustes disponibles, connu pour sa flexibilité, ses performances et sa large gamme de fonctionnalités. Il est largement utilisé pour héberger des sites Web et des applications Web. La configuration d'Apache sur CentOS Stream 9 vous permet de tirer parti de ses puissantes capacités pour vos besoins d'hébergement Web. De plus, sécuriser votre site Web avec un certificat SSL gratuit de Let's Encrypt garantit que votre site est crypté et digne de confiance.

Pour installer le serveur HTTP Apache sur CentOS Stream 9 et configurer un certificat SSL Let's Encrypt, suivez les étapes décrites dans ce guide. Cela vous fournira une configuration de serveur Web sécurisée et efficace.

Assurer un système de flux CentOS entièrement mis à jour avant l'installation d'Apache

Avant de procéder à l'installation d'Apache sur votre machine CentOS Stream, nous devons vérifier que notre système est entièrement à jour. C'est plus qu'une simple mesure de précaution. La mise à jour de votre système permet d'éviter les problèmes de compatibilité et améliore considérablement sa stabilité, sa sécurité et ses performances.

Pour mettre cela en mouvement, exécutez la commande suivante dans votre terminal :

sudo dnf upgrade --refresh

Cette commande déclenche le mécanisme de mise à jour, en obtenant et en installant les dernières mises à jour logicielles et correctifs de sécurité de votre système. Il est crucial de laisser le processus de mise à jour se terminer complètement avant de passer à l'installation d'Apache. Cela garantit que votre système est dans son meilleur état, configuré de manière optimale et prêt à exécuter Apache sans rencontrer de problèmes ni de problèmes de compatibilité.

Installez Apache HTTPD via la commande DNF

La deuxième étape consiste à installer Apache, ou HTTPD, sur votre système CentOS Stream. Il s'agit d'un processus simple, grâce au puissant gestionnaire de packages DNF. Le gestionnaire de packages DNF, ou Dandified Yum, simplifie l'installation, la mise à jour et la gestion des packages logiciels.

Lancez l'installation d'Apache (HTTPD) en exécutant la commande suivante dans votre terminal :

sudo dnf install httpd

Cette commande lance le mécanisme d'installation et récupère et installe tous les composants nécessaires pour permettre à Apache (HTTPD) de s'exécuter sur votre système. Le processus devrait se terminer dans quelques minutes seulement. Ensuite, Apache (HTTPD) sera entièrement installé et prêt à être utilisé.

Activation et configuration d'Apache HTTPD pour s'exécuter au démarrage du système

Après l'installation réussie d'Apache (HTTPD) sur votre système CentOS Stream, l'action clé suivante consiste à activer le service et à le configurer pour qu'il se lance automatiquement au démarrage du système. Apache (HTTPD) est toujours actif et prêt à répondre aux requêtes Web lorsque votre système démarre.

Si le service Apache (HTTPD) n'est pas actif ou configuré pour s'exécuter par défaut, utilisez ces commandes dans votre terminal pour démarrer le service et vous assurer qu'il s'exécute au démarrage du système :

sudo systemctl start httpd
sudo systemctl enable httpd

La première commande, sudo systemctl start httpd, lance le service Apache (HTTPD), tandis que la deuxième commande, sudo systemctl activate httpd, configure le service pour qu'il s'exécute automatiquement au démarrage du système. En implémentant ces deux commandes, vous garantissez qu'Apache (HTTPD) est constamment accessible et actif, prêt à répondre aux requêtes Web à chaque mise sous tension de votre système.

Alternativement, vous pouvez condenser les deux étapes précédentes en une seule commande :

sudo systemctl enable httpd --now

L'option –now dans la commande sudo systemctl activate httpd –now démarre simultanément le service Apache (HTTPD) et le configure pour qu'il se lance automatiquement au démarrage du système. Cette commande unique unifie les deux commandes distinctes des étapes précédentes, rendant le processus plus rationalisé et plus efficace.

Vérifier l'état du service Apache HTTPD

Enfin, nous devons vérifier la mise en œuvre et le fonctionnement réussis d'Apache (HTTPD) en utilisant la commande systemctl suivante :

systemctl status httpd

Cette commande vous fournit l'état en temps réel du service Apache (HTTPD), y compris les erreurs ou messages ayant pu survenir. En examinant l'état du service, vous pouvez confirmer qu'Apache (HTTPD) fonctionne de manière transparente.

Configurer les règles FirewallD

Après avoir installé Apache (HTTPD) sur CentOS Stream, vous remarquerez peut-être que le pare-feu n'inclut pas de règles préconfigurées pour les ports standard 80 et 443. Vous devez configurer ces règles de pare-feu avant de continuer pour améliorer la sécurité de votre application Web.

Définissez les règles de pare-feu à l'aide de l'outil firewall-cmd, l'utilitaire de gestion de pare-feu par défaut de CentOS Stream. Les règles que vous devez configurer varient en fonction des ports que vous comptez utiliser. Cependant, nous répertorions toutes les options critiques dans les étapes suivantes.

Ouverture des ports 80 et 443

Nous exécuterons les deux premières commandes pour ouvrir les ports 80 et 443. Ces ports gèrent respectivement le trafic HTTP et HTTPS entrant.

Pour ouvrir le port 80 ou HTTP, exécutez la commande suivante :

sudo firewall-cmd --permanent --add-port=80/tcp

Ensuite, ouvrez le port 443, ou HTTPS, avec la commande suivante :

sudo firewall-cmd --permanent --add-port=443/tcp

Vérifier les modifications du pare-feu

Après avoir spécifié les ports à ouvrir, nous devons demander au pare-feu d'implémenter ces modifications. Pour ce faire, rechargez les règles de pare-feu à l'aide de la commande ci-dessous :

sudo firewall-cmd --reload

Comprendre les implications

Il est primordial d'avoir une compréhension approfondie des implications en matière de sécurité qui accompagnent l'ouverture de ports sur votre système. En ouvrant sélectivement uniquement les ports nécessaires, vous renforcez la défense de votre application Web contre les accès non autorisés et les menaces de sécurité potentielles. Cela souligne pourquoi il est essentiel de configurer correctement les règles de pare-feu pour votre installation Apache (HTTPD) sur CentOS Stream.

Vérification de l'accès Apache HTTPD

Après avoir méticuleusement configuré Firewalld, assurez-vous de pouvoir accéder à la page de destination Apache (HTTPD) via votre navigateur Web. Lancez votre navigateur Web préféré et accédez à http://localhost ou http://your_server_ip.

Pour accéder via l'IP de votre serveur :

http://your_server_ip

Alternativement, pour accéder via localhost :

http://localhost

Lorsque vous configurez tout avec précision, la page de destination par défaut d'Apache (HTTPD) vous accueillera. Cette page affiche un message confirmant que le serveur fonctionne comme prévu. La page ressemblera à :

Créer et configurer un hôte virtuel

Cette section approfondira l'aspect pratique de la création d'un hôte virtuel à l'aide d'Apache (HTTPD), un serveur Web flexible connu pour sa capacité à héberger plusieurs domaines sur un seul serveur. Cet utilitaire est analogue à l'attribut « server block » de Nginx. Dans le didacticiel suivant, nous illustrerons comment formuler un hôte virtuel pour un domaine donné, représenté par « exemple-domaine.com ». Naturellement, vous remplacerez cet exemple de domaine par votre nom de domaine spécifique.

La création d'hôtes virtuels facilite la gestion indépendante des configurations pour chaque domaine. Cela permet de contrôler diverses facettes de votre environnement de serveur Web, notamment la sécurité, les performances et les paramètres personnalisés. Cela peut s'avérer particulièrement avantageux si vous souhaitez héberger plusieurs sites Web sur un seul serveur ou conserver des paramètres distincts pour des sections distinctes de votre site Web. Avec Apache (HTTPD), vous pouvez facilement concevoir des hôtes virtuels pour répondre à ces exigences.

Création et configuration de répertoires

Pour commencer la configuration de votre hôte virtuel, vous devez créer un nouveau répertoire qui sert de dossier racine pour votre hôte virtuel. Le nom de ce répertoire correspond généralement à votre nom de domaine.

Par exemple, si votre nom de domaine est « exemple.com », vous générerez un nouveau répertoire avec la commande :

sudo mkdir /var/www/example.com

Cette commande nécessite le remplacement de « exemple.com » par votre nom de domaine. Ainsi, le répertoire hébergera les fichiers et les actifs associés à vos hôtes virtuels, notamment des fichiers HTML, des images, des scripts et d'autres ressources.

La configuration de répertoires individuels pour chaque hôte virtuel facilite une séparation distincte des problèmes, ce qui est important dans le contexte de la sécurité et du dépannage.

Le nouveau répertoire peut nécessiter une propriété et des autorisations appropriées pour autoriser l'accès à Apache (HTTPD). Les commandes suivantes définissent la propriété et les autorisations correctes :

sudo chown -R apache:apache /var/www/example.com
sudo chmod -R 755 /var/www/example.com

Une fois le nouveau répertoire préparé, nous pouvons configurer votre hôte virtuel.

Création d'un fichier index.html

Un éditeur de texte génère un fichier index.html pour votre hôte virtuel. Pour notre didacticiel, nous utiliserons l'éditeur de texte nano, mais vous pouvez choisir n'importe quel éditeur de texte de votre choix.

Exécutez la commande suivante pour créer le fichier index.html :

sudo nano /var/www/example.com/index.html

Dans l'éditeur de texte, commencez à créer le contenu de votre fichier index.html. Ce fichier sert généralement de premier point de contact pour un utilisateur visitant votre site Web.

Voici un exemple simple :

<html>
  <head>
    <title>Example Domain</title>
  </head>
  <body>
    <h1>Welcome to Example Domain</h1>
    <p>This is a sample page for the domain example.com.</p>
  </body>
</html>

Après avoir finalisé le contenu de votre fichier index.html, enregistrez le fichier et quittez l'éditeur de texte. Dans le cas de nano, cela se fait en appuyant sur Ctrl + X, Y et Entrée.

Configuration des répertoires d'hôtes virtuels

Assurer une configuration correcte du répertoire pour le serveur Web Apache garantit une configuration transparente et organisée. Plus précisément, les répertoires « sites-available » et « sites-enabled » sont utilisés. Cette configuration reflète celle adoptée dans Nginx et favorise des configurations organisées et accessibles.

Pour créer ces répertoires, utilisez la commande suivante :

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

Ensuite, demandez à Apache de rechercher les fichiers d'hôte virtuel dans le répertoire « /etc/httpd/sites-available » :

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

Dans le fichier de configuration ouvert, ajoutez la ligne « IncludeOptional sites-enabled/*.conf » à la fin. Cette ligne demande à Apache d'inclure tous les fichiers de configuration de l'hôte virtuel dans le répertoire « sites-enabled ».

IncludeOptional sites-enabled/*.conf

Vous pouvez éventuellement commenter « IncludeOptional conf.d/*.conf », en désactivant le dossier par défaut dans lequel Apache recherche les fichiers d'hôte virtuel. Cela aide à éviter toute confusion potentielle.

Exemple:

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

Pour enregistrer le fichier et quitter, utilisez la combinaison de touches CTRL + O, suivie de CTRL + X.

Créer le fichier de configuration de l'hôte virtuel

Ensuite, à l'aide de votre éditeur de texte, nous créerons un fichier de configuration d'hôte virtuel dans /etc/httpd/sites-available/example.com.conf.

sudo nano /etc/httpd/sites-available/example.com.conf

Remplissez les informations d'espace réservé dans le bloc de configuration suivant avec votre nom de serveur, votre alias de serveur et votre racine de document avant de les copier dans le fichier de configuration de l'hôte virtuel situé dans /etc/httpd/sites-available/example.com.conf.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName example_domain
    ServerAlias www.example_domain
    DocumentRoot /var/www/example.com/
</VirtualHost>

Ajustez les directives du serveur pour répondre à vos besoins spécifiques.

Étape 5 : Modification des autorisations d'accès

Pour accorder un accès public à votre serveur, modifiez les autorisations d'accès au service Apache dans le fichier de configuration /etc/httpd/conf/httpd.conf. La configuration par défaut refuse l'accès. Si vous négligez cette étape, vous pourriez rencontrer des erreurs HTTP 403 lorsque des personnes tenteront d'accéder à votre site Web.

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

Ajoutez le bloc suivant à votre fichier, en vous assurant d'ajuster le répertoire racine pour qu'il corresponde au vôtre.

<Directory /var/www/example.com/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Pour enregistrer ces modifications, utilisez la combinaison de touches CTRL+O et quittez l'éditeur de texte en utilisant CTRL+X.

Étape 6 : Activer l'hôte virtuel pour Apache sur CentOS Stream

Pour configurer l'hôte virtuel, vous devez l'activer comme étape finale. Créez un lien symbolique du répertoire des sites disponibles vers le répertoire des sites activés à l'aide de la commande fournie ci-dessous :

sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/

Vous devez redémarrer le service Apache pour terminer le processus d'activation.

sudo systemctl restart httpd

Après avoir redémarré le service Apache, ouvrez votre navigateur Web et accédez à « HTTP://example_domain ». Si vous n'avez pas enregistré de domaine, vous pouvez accéder à votre site Web en utilisant l'adresse IP (locale ou distante). Si vous avez tout configuré correctement, la page de destination que vous avez créée dans le fichier index.html vous accueillera.

Commandes et astuces supplémentaires

Répertoires et fichiers sécurisés

Définition d'autorisations sécurisées

L'utilisation d'autorisations sécurisées pour les fichiers et répertoires dans Apache sur CentOS est cruciale. Souvent, des autorisations excessives sont accordées, comme un accès public complet. Pour éviter les risques de sécurité, il est recommandé de limiter les autorisations. Pour les répertoires, utilisez chmod 755 et pour les fichiers, chmod 644. Vous trouverez ci-dessous les commandes permettant de définir ces autorisations. N'oubliez pas que certaines applications peuvent nécessiter des autorisations différentes, comme 777 pour phpBB.

  • Pour les répertoires :
sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
  • Pour les fichiers :
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

Ces commandes remplaceront /var/www/example.com/ avec le chemin de répertoire approprié. Cette étape ne garantit pas une sécurité complète mais réduit considérablement les risques en empêchant l'accès public aux fichiers cruciaux.

Sécurisez Apache avec Let's Encrypt SSL

Installation du certificat SSL Let's Encrypt

La sécurisation de votre serveur Apache avec un certificat SSL est nécessaire pour des connexions client-serveur sécurisées. Let's Encrypt fournit un certificat SSL gratuit et automatisé. Tout d’abord, assurez-vous que le référentiel CRB est activé et que le référentiel EPEL est installé. Le processus d'installation varie légèrement entre CentOS Stream 9 et 8.

Pour CentOS Flux 9 :
  • Activer CRB :
sudo dnf config-manager --set-enabled crb
  • Installez le référentiel EPEL :
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

Ensuite, installez mod_ssl et Snap :

sudo dnf install mod_ssl

Activez EPEL sur votre distribution CentOS Stream, puis installez Snap.

sudo dnf install snapd -y

Après l'installation, assurez-vous d'activer Snap et au démarrage du système immédiatement.

sudo systemctl enable snapd --now

L'étape suivante consiste à installer le noyau Snap, qui prendra en charge toutes les dépendances nécessaires à l'exécution des packages Snap.

sudo snap install core

Créez un lien symbolique pour le répertoire snapd.

sudo ln -s /var/lib/snapd/snap /snap

Utilisez la commande de terminal suivante pour installer le package Snap Certbot.

sudo snap install --classic certbot

Enfin, créez un autre lien symbolique pour le package snap Certbot.

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Exécutez Certbot pour Apache

Exécutez la commande suivante dans votre terminal pour générer votre certificat SSL à l'aide de Certbot.

sudo certbot --dry-run --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Pour ceux qui découvrent Let's Encrypt, vous pouvez rechercher plus d'informations sur l'abréviation dans la commande.

  • L'option « –dry-run » vous permet d'exécuter un test du processus de génération de certificat sans altérer le système. Cette option est utile pour les tests.
  • L'option « –apache » consiste à générer un certificat pour un serveur Web Apache.
  • L'option « –agree-tos » vous permet d'accepter les conditions de service de Let's Encrypt, l'autorité de certification qui fournit le certificat SSL.
  • L'option « –redirect » redirige automatiquement tout le trafic HTTP vers HTTPS.
  • L'option « –hsts » active HTTP Strict Transport Security (HSTS). Cette fonctionnalité de sécurité aide à protéger contre les attaques par déclassement de protocole et le détournement de cookies en indiquant aux navigateurs d'accéder uniquement à votre site Web via une connexion HTTPS sécurisée.
  • L'option « –staple-ocsp » active l'agrafage OCSP (Online Certificate Status Protocol), qui vérifie l'état de révocation d'un certificat SSL sans contacter l'autorité de certification.
  • Utilisez l'option « –email » pour spécifier l'adresse e-mail que vous souhaitez associer au certificat.
  • L'option « -d » précise le nom de domaine pour lequel vous allez générer le certificat. Dans cet exemple, le nom de domaine est « www.example.com ».

Vous pouvez également utiliser la commande suivante et suivre les invites étape par étape pour une expérience plus accessible.

sudo certbot certonly --apache

En exécutant la commande avec les paramètres mentionnés, vous demandez à certbot de créer un certificat SSL pour votre domaine « www.example.com » tout en incluant également les fonctionnalités de sécurité nécessaires comme une redirection HTTPS 301 forcée, un en-tête Strict-Transport-Security et Agrafage OCSP. Il est important de noter que vous devez remplacer l'adresse e-mail dans la commande par la vôtre et vous assurer également de remplacer le nom de domaine « www.example.com » par le nom de domaine souhaité.

Configuration de SSL sur Apache

Après avoir obtenu le certificat SSL, configurez votre serveur Apache pour l'utiliser. Modifier le ssl.conf fichier et ajoutez les lignes suivantes, en remplaçant « exemple.com » par votre domaine :

sudo nano /etc/httpd/conf.d/ssl.conf

Dans le fichier de configuration, ajoutez les lignes suivantes : remplacez « exemple.com » par votre nom de domaine.

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

Enregistrez les modifications et redémarrez Apache pour que la configuration prenne effet.

sudo systemctl restart httpd 

Cette configuration garantit une communication cryptée et sécurisée entre les navigateurs et votre site Web.

Automatisation du renouvellement des certificats

Pour maintenir le certificat SSL à jour, configurez une tâche cron pour le renouvellement automatique. Testez le processus de renouvellement avec un essai à sec :

sudo certbot renew --dry-run

Vérifiez les minuteries à l'aide de la commande systemctl list-timers et confirmez que « snap.certbot.renew.timer » est présent.

systemctl list-timers snap.certbot.renew.timer

Utilisez la commande « systemctl list-timers –all » pour afficher les minuteries actives et inactives sur votre système. Cette commande présente tous les minuteurs, y compris « snap.certbot.renew.timer ». Le « snap.certbot.renew.timer » assure la vérification et le renouvellement automatique de votre certificat avant expiration. Ainsi, vous éliminez les soucis concernant le processus de renouvellement.

systemctl list-timers --all

Gestion Apache HTTPD

Une fois Apache installé avec succès sur votre serveur, voici quelques points essentiels à retenir pour une gestion efficace.

Journaux du serveur Apache

Les journaux du serveur Apache sont stockés dans le répertoire /var/log/httpd/. Les noms de fichiers par défaut pour les journaux d'accès et d'erreurs sont respectivement access.log et error.log. Cependant, il est possible de modifier ces noms dans le fichier de configuration de l'hôte virtuel.

Voici un exemple de modification des journaux du serveur Apache dans le fichier de configuration de l'hôte virtuel.

<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/example.com
    
    # Change access log to custom-access.log
    CustomLog /var/log/httpd/custom-access.log combined
    
    # Change error log to custom-error.log
    ErrorLog /var/log/httpd/custom-error.log
</VirtualHost>

Cet exemple modifie les journaux d'accès et d'erreurs en custom-access.log et custom-error.log, respectivement. Vous pouvez modifier les noms des fichiers journaux selon vos préférences et mettre à jour le chemin correspondant dans le fichier de configuration de l'hôte virtuel.

Commandes Apache

Voici quelques-unes des commandes fréquemment utilisées lors de la gestion d'Apache :

Arrêtez le serveur Web Apache :

sudo systemctl stop httpd

Démarrez le serveur Web Apache :

sudo systemctl start httpd

Redémarrez le serveur Web Apache :

sudo systemctl restart httpd

Rechargez le serveur Web Apache :

sudo systemctl reload httpd

Désactivez Apache au démarrage du serveur :

sudo systemctl disable httpd

Activez Apache au démarrage du serveur :

sudo systemctl enable httpd

Comment mettre à jour Apache HTTPD

Pour garder Apache à jour, exécutez la commande que vous utilisez généralement pour vérifier si votre système est à jour.

sudo dnf update --refresh

Il est important de faire des sauvegardes ou de créer des images de votre système avant d'effectuer toute mise à niveau, car des bugs peuvent parfois survenir. La commande suivante actualisera tous les packages système, y compris Apache, et vous invitera à effectuer la mise à niveau.

Comment supprimer Apache HTTPD

Pour désinstaller Apache de votre système, utilisez la commande suivante.

sudo systemctl disable httpd --now

Maintenant, utilisez la commande suivante pour supprimer complètement Apache.

sudo dnf remove httpd

Les fichiers restants peuvent persister dans le répertoire principal /etc/httpd, effaçons donc ce dossier.

sudo rm -R /etc/httpd/

Conclusion

Avec Apache HTTP Server et Let's Encrypt configurés avec succès sur votre système CentOS Stream, votre site Web sera à la fois robuste et sécurisé. La mise à jour régulière d'Apache et le renouvellement de votre certificat SSL Let's Encrypt vous aideront à maintenir une sécurité et des performances optimales. Profitez de la fiabilité et de la sécurité qu'Apache HTTP Server et Let's Encrypt apportent à votre environnement d'hébergement Web.

Joshua James
Suis-moi
Les derniers articles par Joshua James (tout voir)

Laissez un commentaire