Comment configurer le serveur Apache autonome avec un hébergement virtuel basé sur des noms avec certificat SSL - partie 4
- 4628
- 1035
- Thomas Richard
UN LFCE (court pour Ingénieur certifié de la Fondation Linux) est un professionnel qualifié qui possède l'expertise pour installer, gérer et résoudre les services de réseau dans les systèmes Linux, et est en charge de la conception, de la mise en œuvre et de la maintenance continue de l'architecture du système.
Dans cet article, nous vous montrerons comment configurer Apache pour servir le contenu Web, et comment configurer des hôtes virtuels basés sur le nom et SSL, y compris un certificat auto-signé.
Ingénieur certifié de la Fondation Linux - Partie 4Présentation du programme de certification de la Fondation Linux (LFCE).
Note: Que cet article n'est pas censé être un guide complet sur Apache, mais plutôt un point de départ pour l'auto-apprentissage sur ce sujet pour le LFCE examen. Pour cette raison, nous ne couvrons pas non plus l'équilibrage de la charge avec Apache dans ce tutoriel.
Vous connaissez peut-être déjà d'autres façons d'effectuer les mêmes tâches, qui est D'ACCORD considérant que la certification de la Fondation Linux est strictement basée sur les performances. Ainsi, tant que vousfinis le travail', Vous avez de bonnes chances de passer l'examen.
Exigences
Prière de se référer à Partie 1 de la série actuelle («Installation des services réseau et configurer le démarrage automatique au démarrage») pour des instructions sur l'installation et le démarrage Apache.
À ce jour, vous devriez faire installer le serveur Web Apache et l'exécution. Vous pouvez le vérifier avec la commande suivante.
# ps -ef | grep -ei '(apache | httpd)' | grep -v grep
Note: Que la commande ci-dessus vérifie la présence de soit apache ou httpd (les noms les plus courants pour le démon Web) Parmi la liste des processus en cours d'exécution. Si Apache est en cours d'exécution, vous obtiendrez une sortie similaire à ce qui suit.
Vérifiez les processus ApacheLa méthode ultime de test de l'installation d'Apache et de vérification si elle s'exécute est de lancer un navigateur Web et de pointer vers l'IP du serveur. Nous devons être présentés avec l'écran suivant ou au moins un message confirmant qu'Apache fonctionne.
Vérifier la page Web ApacheConfiguration d'Apache
Le fichier de configuration principal pour Apache peut être situé dans différents répertoires en fonction de votre distribution.
/ etc / apache2 / apache2.conf [pour ubuntu] / etc / httpd / conf / httpd.conf [pour centos] / etc / apache2 / httpd.conf [pour opensuse]
Heureusement pour nous, les directives de configuration sont extrêmement bien documentées sur le site Web du projet Apache. Nous nous référerons à certains d'entre eux tout au long de cet article.
Des pages de service dans un serveur autonome avec Apache
L'utilisation la plus élémentaire d'Apache est de servir les pages Web dans un serveur autonome où aucun hôte virtuel n'a encore été configuré. Le Document de document Directive Spécifie le répertoire à partir duquel Apache servira des documents de pages Web.
Notez que par défaut, toutes les demandes sont prises à partir de ce répertoire, mais vous pouvez également utiliser des liens et / ou des alias symboliques pour pointer vers d'autres emplacements également.
À moins que correspondant par le Alias directive (qui permet de stocker des documents dans le système de fichiers local plutôt que dans le répertoire spécifié par Document de document), le serveur ajoute le chemin d'accès de l'URL demandée à la racine du document pour faire le chemin d'accès au document.
Par exemple, étant donné les suivants Document de document:
Apache DocumentRootLorsque le navigateur Web pointe vers [IP de serveur ou nom d'hôte]]/ LFCE / Tecmint.html, Le serveur s'ouvrira / var / www / html / lfce / tecmint.html (en supposant que ce fichier existe) et enregistrez l'événement dans son journal d'accès avec un 200 (D'ACCORD) réponse.
Le journal d'accès se trouve généralement à l'intérieur / var / log sous un nom représentatif, comme accès.enregistrer ou Access_log. Vous pouvez même trouver ce journal (et le journal d'erreur également) dans un sous-répertoire (par exemple, / var / log / httpd dans Centos). Sinon, l'événement échoué sera toujours enregistré au journal d'accès mais avec un 404 (Non trouvé) Réponse.
Journal d'accès apacheDe plus, les événements ratés seront enregistrés dans le journal d'erreur:
Journal d'erreur ApacheLe format du journal d'accès peut être personnalisé en fonction de vos besoins en utilisant le Logique Directive dans le fichier de configuration principal, alors que vous ne pouvez pas faire de même avec le journal d'erreur.
Le format par défaut du journal d'accès est comme suit:
Logformat "% h% l% u% t \"% r \ ""%> s% b"" [surnom]
Où chacune des lettres précédés d'un signe pour cent indique le serveur pour enregistrer une certaine information:
Chaîne | Description |
% h | Nom d'hôte distant ou adresse IP |
% L | Nom du journal distant |
% u | Utilisateur distant si la demande est authentifiée |
% T | Date et heure où la demande a été reçue |
% R | Première ligne de demande au serveur |
%> s | Statut final de la demande |
% b | Taille de la réponse [octets] |
et surnom est un alias facultatif qui peut être utilisé pour personnaliser d'autres journaux sans avoir à saisir à nouveau toute la chaîne de configuration.
Vous pouvez vous référer au Logique Directive [Section des formats de journal personnalisé] dans les Docs Apache pour d'autres options.
Les deux fichiers journaux (accès et erreur) représentent une excellente ressource pour analyser rapidement en un coup d'œil ce qui se passe sur le serveur Apache. Inutile de dire qu'ils sont le premier outil qu'un administrateur système utilise pour résoudre les problèmes.
Enfin, une autre directive importante est Écouter, qui indique au serveur d'accepter les demandes entrantes sur le port ou la combinaison d'adresse / port spécifiée:
Si seul un numéro de port est défini, l'Apache écoutera le port donné sur toutes les interfaces réseau (le panneau générique * est utilisé pour indiquer «toutes les interfaces réseau»).
Si l'adresse IP et le port sont spécifiés, alors l'Apache écoutera sur la combinaison du port et de l'interface réseau donnés.
Veuillez noter (comme vous le verrez dans les exemples ci-dessous) que plusieurs directives d'écoute peuvent être utilisées en même temps pour spécifier plusieurs adresses et ports pour écouter. Cette option demande au serveur de répondre aux demandes de l'une des adresses et ports répertoriés.
Configuration des hôtes virtuels basés sur le nom
Le concept d'hôte virtuel définit un site (ou un domaine) individuel qui est servi par la même machine physique. En fait, plusieurs sites / domaines peuvent être servis un seul ""réel»Serveur en tant qu'hôte virtuel. Ce processus est transparent à l'utilisateur final, à qui il semble que les différents sites soient servis par des serveurs Web distincts.
L'hébergement virtuel basé sur le nom permet au serveur de compter sur le client pour signaler le nom d'hôte dans le cadre des en-têtes HTTP. Ainsi, en utilisant cette technique, de nombreux hôtes différents peuvent partager la même adresse IP.
Chaque hôte virtuel est configuré dans un répertoire Document de document. Pour notre cas, nous utiliserons les domaines factice suivants pour la configuration des tests, chacun situé dans le répertoire correspondant:
- ilovelinux.com - / var / www / html / ilovelinux.com / public_html
- linuxrocks.org - / var / www / html / linuxrocks.org / public_html
Pour que les pages soient affichées correctement, nous allons chod Le répertoire de chaque VirtualHost à 755:
# Chmod -R 755 / var / www / html / ilovelinux.com / public_html # chmod -r 755 / var / www / html / linuxrocks.org / public_html
Ensuite, créez un échantillon indice.html fichier à l'intérieur de chacun public_html annuaire:
www.ilovelinux.comCeci est la page principale de www.ilovelinux.com
Enfin, dans Centos et ouverte Ajouter la section suivante au bas de / etc / httpd / conf / httpd.confli ou / etc / apache2 / httpd.confli, respectivement, ou simplement le modifier s'il est déjà là.
ServerAdmin [Protégé par e-mail] DocumentRoot / var / www / html / ilovelinux.com / public_html servername www.ilovelinux.com servealias www.ilovelinux.com ilovelinux.com errorlog / var / www / html / ilovelinux.com / erreur.log log ""% v% l% u% t \""% r \ ""%> s% b"" myvhost customlog / var / www / html / ilovelinux.com / accès.log MyVhost ServerAdmin [Protégé par e-mail] DocumentRoot / var / www / html / linuxrocks.org / public_html servername www.linuxrocks.org servealias www.linuxrocks.org linuxrocks.org errorlog / var / www / html / linuxrocks.org / erreur.log log ""% v% l% u% t \""% r \ ""%> s% b"" Myvhost Customlog / var / www / html / linuxrocks.org / accès.log Myvhost
Veuillez noter que vous pouvez également ajouter chaque définition de l'hôte virtuel dans des fichiers séparés à l'intérieur du / etc / httpd / confre.d annuaire. Si vous choisissez de le faire, chaque fichier de configuration doit être nommé comme suit:
/ etc / httpd / confre.d / ilovelinux.com.conf / etc / httpd / confre.d / linuxrocks.org.confli
En d'autres termes, vous devez ajouter .confli au site ou au nom de domaine.
Dans Ubuntu, Chaque fichier de configuration individuel est nommé / etc / apache2 / sites-disponible / [Nom du site].confli. Chaque site est ensuite activé ou désactivé avec le a2ensite ou a2dissite commandes, respectivement, comme suit.
# a2ensite / etc / apache2 / sites-disponible / ilovelinux.com.Conf # a2dissite / etc / apache2 / sites-disponible / ilovelinux.com.Conf # a2ensite / etc / apache2 / sites-disponible / linuxrocks.org.conf # a2dissite / etc / apache2 / sites-disponible / linuxrocks.org.confli
Le a2ensite et a2dissite commandes Créer des liens vers le fichier de configuration de l'hôte virtuel et les placer (ou supprimer) dans le / etc / apache2 / sites compatible annuaire.
Pour pouvoir parcourir les deux sites à partir d'une autre boîte Linux, vous devrez ajouter les lignes suivantes dans le / etc / hôtes fichier dans cette machine afin de rediriger les demandes vers ces domaines vers une adresse IP spécifique.
[Adresse IP de votre serveur Web] www.ilovelinux.com [adresse IP de votre serveur Web] www.linuxrocks.org
Comme mesure de sécurité, Selinux ne permettra pas Apache Pour écrire des journaux à un répertoire autre que la valeur par défaut / var / log / httpd.
Vous pouvez soit désactiver Selinux, soit définir le bon contexte de sécurité:
# chcon system_u: object_r: httpd_log_t: s0 / var / www / html / xxxxxx / error.enregistrer
où xxxxxx est le répertoire à l'intérieur / var / www / html où vous avez défini vos hôtes virtuels.
Après avoir redémarré Apache, vous devriez voir la page suivante aux adresses ci-dessus:
Vérifiez Apache VirtualHostsInstallation et configuration de SSL avec Apache
Enfin, nous allons créer et installer un auto-signé certificat à utiliser avec Apache. Ce type de configuration est acceptable dans de petits environnements, comme un LAN privé.
Cependant, si votre serveur exposera du contenu au monde extérieur sur Internet, vous voudrez installer un certificat signé par un tiers pour corroborer son authenticité. Quoi qu'il en soit, un certificat vous permettra de crypter les informations qui sont transmises, depuis ou dans votre site.
Dans Centos et ouverte, vous devez installer le mod_ssl emballer.
# yum Update && yum install mod_ssl [sur Centos] # Zypper Refresh && zypper install mod_ssl [sur opensuse]
Alors que dans Ubuntu Vous devrez activer le module SSL pour Apache.
# a2enmod ssl
Les étapes suivantes sont expliquées en utilisant un Centos Test Server, mais votre configuration doit être presque identique dans les autres distributions (si vous rencontrez des problèmes, n'hésitez pas à laisser vos questions en utilisant le formulaire de commentaires).
Étape 1 [Facultatif]: Créez un répertoire pour stocker vos certificats.
# mkdir / etc / httpd / ssl-certs
Étape 2: Générer votre certificat auto-signé et la clé qui le protégera.
# OpenSSL REQ -X509 -NODES -DAYS 365 -NEWKEY RSA: 2048 -Keyout / etc / httpd / ssl-certs / apache.clé -out / etc / httpd / ssl-certs / apache.CRT
Une brève explication des options énumérées ci-dessus:
- req -x509 indique que nous créons un certificat X509.
- -nœuds (Non DES) signifie «ne crypte pas la clé».
- -jours 365 est le nombre de jours pour lequel le certificat sera valable.
- -Newkey RSA: 2048 Crée une clé RSA 2048 bits.
- -Keyout / etc / httpd / ssl-certs / apache.clé est le chemin absolu de la clé RSA.
- -out / etc / httpd / ssl-certs / apache.CRT est le chemin absolu du certificat.
Étape 3: Ouvrez votre fichier de configuration d'hôte virtuel choisi (ou sa section correspondante dans / etc / httpd / conf / httpd.confli Comme expliqué précédemment) et ajoutez les lignes suivantes à une déclaration d'hôte virtuelle à l'écoute du port 443.
Sslengine sur sslcertificatefile / etc / httpd / ssl-certs / apache.crt sslcertificatekeyfile / etc / httpd / ssl-certs / apache.clé
Veuillez noter que vous devez ajouter.
NameVirtualHost *: 443
en haut, juste en dessous
NameVirtualHost *: 80
Les deux directives demandent à Apache d'écouter les ports 443 et 80 de toutes les interfaces réseau.
L'exemple suivant est tiré de / etc / httpd / conf / httpd.confli:
Directives d'Apache VirtualHostPuis redémarrez Apache,
# Service Apache2 Restart [Sysvinit et Systèmes basés sur Unistar.Service [Systèmes basés sur Systemd]
Et pointez votre navigateur pour https: // www.ilovelinux.com. Vous serez présenté avec l'écran suivant.
Vérifiez le certificat APACHE SSLAllez-y et cliquez sur ""je comprends les risques"" et ""Ajouter une exception"".
AVERTISSEMENT APACHE CÉRITFICATEEnfin, vérifiez ""Stockez en permanence cette exception""Et cliquez""Confirmer une exception de sécurité"".
Ajouter SSL CeritficateEt vous serez redirigé vers votre page d'accueil en utilisant https.
Apache https activéRésumé
Dans cet article, nous avons montré comment configurer Apache et sur le nom Hébergement virtuel avec SSL Pour sécuriser la transmission de données. Si, pour une raison quelconque, vous avez rencontré des problèmes, n'hésitez pas à nous faire savoir en utilisant le formulaire de commentaire ci-dessous. Nous serons plus que heureux de vous aider à effectuer une configuration réussie.
Lire aussi
- Hébergement virtuel basé sur IP et basé sur Apache
- Création d'hôtes virtuels Apache avec des options Vhosts Activer / Désactiver
- Surveiller «Apache Web Server» à l'aide de l'outil «APACHE GUI»
- « Configuration du serveur proxy Squid avec accès restreint et configuration des clients pour utiliser le proxy - partie 5
- Un guide ultime pour configurer le serveur FTP pour permettre des connexions anonymes »