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 CentOS7.6 (1810)
Version d'Apache2.4.6

Table des matières

  1. installer
  2. réglage de base
  3. 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.

httpd.conf【Avant le changement】


#ServerName www.example.com:80

httpd.conf【après le changement】


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


ssl.conf【Avant le changement】


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"


ssl.conf【après le changement】


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.

httpd.conf


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