Configuration initiale requise depuis l'installation d'Apache sur CentOS jusqu'au démarrage.
Date de publication:8 décembre 2020.
INFOMARTION > Configuration initiale requise depuis l'installation d'Apache sur CentOS jusqu'au démarrage.
Vue d'ensemble.
Les étapes de configuration initiale requises pour installer et démarrer Apache sur CentOS. Les informations sont basées sur l'hypothèse que CentOS7 est utilisé.
Les versions sont les suivantes.
Version de CentOS | 7.6 (1810) |
---|---|
Version d'Apache | 2.4.6 |
Table des matières
- installer
- réglage de base
- 2-1. Création du dossier de sortie du fichier journal
- 2-2. Paramètres du domaine
- 2-3. Activation des modules SSL et des fichiers de configuration
- 2-4. Modifier le chemin de sortie du journal
- 2-5. Création de certificats SSL
- 2-6. SSL (Secure Socket Layer) permanent
- 2-7. Confirmation de l'activation (accès https).
- 2-8. Réglage du démarrage automatique
- résumé
1. installer
Cette section décrit la configuration d'Apache, de l'installation au démarrage.
1-1. Installation d'Apache
Effectuez l'installation d'Apache au moyen de la commande yum. Effectuez le travail en tant qu'utilisateur root.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install httpd
1-2. Vérification du démarrage (accès http)
Vérifiez brièvement s'il est accessible. L'installation d'Apache (httpd) avec la commande yum active la commande apachectl. Utilisez ceci pour démarrer Apache.
[root@hostname ~]# apachectl start
[root@hostname ~]# apachectl status
* httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2020-12-06 17:08:12 JST; 1s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 1303 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
|-1303 /usr/sbin/httpd -DFOREGROUND
|-1304 /usr/sbin/httpd -DFOREGROUND
|-1305 /usr/sbin/httpd -DFOREGROUND
|-1306 /usr/sbin/httpd -DFOREGROUND
|-1307 /usr/sbin/httpd -DFOREGROUND
`-1308 /usr/sbin/httpd -DFOREGROUND
Dec 06 17:08:11 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Dec 06 17:08:12 localhost.localdomain httpd[1303]: AH00558: httpd: Could not reliably determ...ge
Dec 06 17:08:12 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
Si l'exécution de la commande 'apachectl status' renvoie 'Active : active (running)', le système a démarré avec succès.
Accédez ensuite à Apache depuis votre navigateur. Définissez les permissions http car le pare-feu (ou iptables pour CentOS6 et antérieurs) n'autorise que l'accès ssh par défaut sur CentOS7. Je voudrais également mettre en place un paramètre de permission collective pour https. Ajoutez également l'option "permanent" pour rendre la configuration permanente.
[root@hostname ~]# firewall-cmd --permanent --add-service=http
[root@hostname ~]# firewall-cmd --permanent --add-service=https
[root@hostname ~]# firewall-cmd --reload
[root@hostname ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client http https ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Il n'y a pas de problème si "http" et "https" ont été ajoutés à "services". Accessible via un navigateur. Dans mon cas, l'adresse IP du serveur est 192.168.50.10, j'accède donc à "http://192.168.50.10". C'est bon si la page suivante apparaît
Une fois que le système a été démarré avec succès, arrêtez-le.
[root@hostname ~]# apachectl stop
2. réglage de base
2-1. Création du dossier de sortie du fichier journal
Pour gérer la journalisation sous /var/log/, créez un répertoire httpd sous /var/log/ comme dossier pour les journaux d'Apache.
Les autorisations (permissions) doivent être de 755. Ce paramètre permet à Apache d'écrire, mais les autres utilisateurs ne peuvent que lire. Si d'autres utilisateurs peuvent écrire, les journaux peuvent être altérés.
mkdir /var/log/httpd' ne doit pas être exécuté si un répertoire du même nom a déjà été créé.
[root@hostname ~]# mkdir /var/log/httpd
[root@hostname ~]# chmod 755 /var/log/httpd
Utilisez cette dernière procédure pour modifier les paramètres de destination de la sortie du journal Apache.
Cette procédure permet uniquement de créer un dossier pour le stockage des journaux.
2-2. Paramètres du domaine
Modifiez les paramètres du domaine indiqués dans httpd.conf. La configuration d'Apache est essentiellement centralisée dans httpd.conf, donc si vous voulez changer la configuration, modifiez httpd.conf. Il n'est pas nécessaire de créer des domaines si l'environnement est local (non ouvert au public sur Internet).
[root@hostname ~]# vi /etc/httpd/conf/httpd.conf
# Décommentez et activez le paramètre ServerName. Le nom de domaine est défini en fonction de l'environnement.
#ServerName www.example.com:80
ServerName domainname:80
2-3. Activation des modules SSL et des fichiers de configuration
Activez SSL pour permettre l'accès par https. Les paramètres SSL sont liés au référencement, et l'http n'est pas une bonne idée pour des raisons de sécurité en premier lieu, donc à moins que vous ne deviez utiliser l'http, utilisez l'https.
Installez le module ssl avec yum.
[root@hostname ~]# yum -y install mod_ssl
L'installation avec yum active automatiquement le module ssl, il vous suffit donc de l'installer. Un fichier de configuration est également créé automatiquement. (Le fichier /etc/httpd/conf.d/ssl.conf est créé automatiquement).
2-4. Modifier le chemin de sortie du journal
Changez la destination de la sortie du journal Apache pour le dossier de sortie du fichier journal que vous venez de créer. Ne modifiez que le fichier de configuration ssl, car il sera configuré dans une étape ultérieure pour être accessible uniquement via ssl (https).
[root@hostname ~]# vi /etc/httpd/conf.d/ssl.conf
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
~abrégé~
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
ErrorLog /var/log/httpd/ssl_error_log
TransferLog /var/log/httpd/ssl_access_log
~abrégé~
CustomLog /var/log/httpd/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
La modification ci-dessus change la destination de la sortie du journal en "/var/log/httpd".
"%t, %h", etc., il s'agit du paramètre de formatage du journal. Voici une liste de formats qui peuvent être utilisés fréquemment à titre de référence.
【参考】
・%T:Temps de traitement de la demande (secondes)
・%h:Nom d'hôte ou adresse IP du client. Tenter de résoudre les noms d'hôtes uniquement si HostnameLookups est réglé sur On.
・%r:Première ligne de la demande
・%b:Octets de la réponse (sans les en-têtes HTTP). format NSI, c'est-à-dire - si aucun des octets n'est envoyé
・%D:Temps de traitement de la demande (microsecondes)
・%>s:Statut HTTP
2-5. Création de certificats SSL
Procédure de création de certificats. L'autocertification est acceptable pour les opérations privées. Pour les serveurs accessibles au public, l'auto-certification doit être découragée.
Il n'y a pas de différence de sécurité entre les certificats normaux et les autocertificats. Cela peut faire la différence entre un certificat qui peut être jugé fiable par une tierce partie et un autre qui ne l'est pas. (Avec l'auto-certification, la barre d'URL devient rouge). Ainsi, pour les serveurs disponibles publiquement (serveurs qui sont vus par des tiers), émettez un certificat normal.
Les paramètres de certificat par défaut pour Apache sont "/etc/pki/tls/certs/localhost.crt" et "/etc/pki/tls/private/localhost.key".
Les paramètres se trouvent dans "SSLCertificateFile" et "SSLCertificateKeyFile" dans "/etc/httpd/conf.d/ssl.conf".
【Pour l'auto-certification】
Pour créer un auto-certificat, exécutez la commande suivante. Exécuter en tant qu'utilisateur root.
L'exécution de 'openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.crt' vous demandera une réponse plusieurs fois, toutes avec Entrée, pas de problème. Il s'agit d'informations sur la personne qui délivre le certificat (par exemple, le pays dans lequel elle vit et son adresse électronique). Si vous émettez un certificat normal, entrez les informations correctes et configurez-le.
[root@hostname ~]# openssl genrsa > /etc/pki/tls/private/localhost.key
[root@hostname ~]# openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.csr
[root@hostname ~]# openssl x509 -req -signkey /etc/pki/tls/private/localhost.key < /etc/pki/tls/certs/localhost.csr > /etc/pki/tls/certs/localhost.crt
【Pour les certificats normaux】
Pour créer un certificat normal, exécutez la commande suivante. Exécuter en tant qu'utilisateur root.
[root@hostname ~]# openssl genrsa -out /etc/pki/tls/private/localhost.key 2048
[root@hostname ~]# openssl req -new -key /etc/pki/tls/private/localhost.key -out /etc/pki/tls/certs/localhost.csr
Pour les certificats ordinaires, cela n'est pas suffisant pour achever le processus. Le travail consiste à remettre le fichier 'server.csr' créé à l'autorité de certification pour qu'elle émette un certificat de serveur et à installer le certificat de serveur qui a été émis.
2-6. SSL (Secure Socket Layer) permanent
Ce n'est pas une bonne sécurité si l'accès se fait par http, donc ajoutez un paramètre pour rediriger vers https si l'accès se fait par http.
Il est possible d'interdire l'accès via http, mais du point de vue de la convivialité, il est recommandé de mettre en place une redirection. Effectuez les tâches suivantes en tant qu'utilisateur root.
[root@hostname ~]# vi /etc/httpd/conf/httpd.conf
Ajoutez le texte suivant à la fin.
<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
Il est possible de modifier ce paramètre pour que les accès qui arrivent par http soient traités par https.
Il est précisé que ce paramètre ne fonctionne pas si vous venez par https. (RewriteCond %{HTTPS} off)
N'oubliez pas de mentionner que sans ce paramètre, les accès https seront également redirigés, ce qui entraînera une boucle sans fin.
2-7. Confirmation de l'activation (accès https).
Maintenant que les différents réglages ont été effectués, vérifiez que le site est accessible via https. Commencez par le début.
[root@hostname ~]# apachectl start
Accessible via un navigateur. Comme pour l'accès http, mais dans mon cas l'adresse IP du serveur est 192.168.50.10, j'accède donc à "http://192.168.50.10".
L'URL passe de "http://192.168.50.10" à "https://192.168.50.10" parce que le paramètre de redirection http est inclus.
Maintenant qu'il a été lancé avec succès, arrêtez Apache.
[root@hostname ~]# apachectl stop
2-8. Réglage du démarrage automatique
Enfin, bien que ce ne soit pas obligatoire, il est difficile de démarrer Apache à chaque fois que le serveur est redémarré. Une configuration est donc mise en place pour qu'Apache démarre automatiquement au démarrage du serveur. Il s'inscrit également à la commande systemctl. Veuillez noter que cette procédure est pour CentOS7, donc si vous utilisez autre chose que CentOS7, vous devrez utiliser la commande Service pour gérer cela.
Créez un fichier 'apache.service' et décrivez les paramètres requis.
[root@hostname ~]# touch /etc/systemd/system/apache.service
[root@hostname ~]# vi /etc/systemd/system/apache.service
Les informations suivantes sont fournies.
[Unit]
#Description.
Description=Apache
#Contrôle avant et après l'exécution.
#Before=xxx.service
#After=xxx.service
[Service]
#Désignation des utilisateurs et des groupes
User=root
Group=root
#Une fois activé, mettez le statut sur Activé.
Type=oneshot
RemainAfterExit=yes
#Démarrer, arrêter et recharger.
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl restart
[Install]
#Paramètres équivalents à Runlevel 3.
WantedBy=multi-user.target
Lorsque vous avez fini de le décrire, enregistrez-le avec la commande systemctl.
[root@hostname ~]# systemctl enable apache
[root@hostname ~]# systemctl is-enabled apache
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep apache
apache.service enabled
[root@hostname ~]# systemctl daemon-reload
3. résumé
Nous avons décrit la configuration initiale requise lors de l'installation d'Apache.
Apache fonctionne en principe dans une certaine mesure avec les paramètres par défaut, mais si vous souhaitez le personnaliser, veuillez vous référer aux paramètres de destination de la sortie du journal et aux paramètres SSL, que vous devez modifier lors de l'exploitation du système.
Merci d'avoir regardé jusqu'à la fin.
■INFORMATION
Veuillez cliquer ici pour accéder à la page d'accueil d'INFORMATION.
■PROFILE
Veuillez cliquer ici pour un profil.
■Coordonnées de contact.
Pour toute question concernant cet article, veuillez nous contacter ici.