Erforderliche Erstkonfiguration von der Installation von Apache auf CentOS bis zur Inbetriebnahme.


Datum der Veröffentlichung:8. Dezember 2020.



INFOMARTION > Erforderliche Erstkonfiguration von der Installation von Apache auf CentOS bis zur Inbetriebnahme.

Überblick.

Dies ist die anfängliche Konfigurationsprozedur, die erforderlich ist, um Apache unter CentOS zu installieren und zu starten. Die Informationen basieren auf der Annahme, dass CentOS7 verwendet wird.

Die Versionen sind wie folgt.

CentOS-Version7.6 (1810)
Apache-Version2.4.6

Inhaltsübersicht

  1. installieren
  2. Grundeinstellung
  3. Zusammenfassung

1. installieren

Dieser Abschnitt beschreibt die Konfiguration des Apache von der Installation bis zum Start.

1-1. Installation von Apache

Führen Sie die Installation von Apache mit dem Befehl yum durch. Führen Sie die Arbeiten als root-Benutzer durch.

[username@hostname ~]$ su -
[root@hostname ~]# yum -y install httpd

1-2. Startup-Check (http-Zugang)

Prüfen Sie kurz, ob sie zugänglich ist. Die Installation von Apache (httpd) mit dem Befehl yum aktiviert den Befehl apachectl. Verwenden Sie dies, um den Apache zu starten.

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

Wenn als Ergebnis der Ausführung des Befehls "apachectl status" "Active: active (running)" zurückgegeben wird, wurde das System erfolgreich gestartet.

Greifen Sie dann über Ihren Browser auf den Apache zu. Legen Sie http-Berechtigungen fest, da die Firewall (oder iptables für CentOS6 und früher) unter CentOS7 standardmäßig nur ssh-Zugriff erlaubt. Ich möchte auch eine kollektive Berechtigungseinstellung für https einrichten. Fügen Sie auch die Option "permanent" hinzu, um die Konfiguration dauerhaft zu machen.

[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:

Es ist in Ordnung, wenn "http" und "https" zu "Dienste" hinzugefügt wurden. Der Zugriff erfolgt über den Browser. In meinem Fall lautet die IP-Adresse des Servers 192.168.50.10, ich greife also auf "http://192.168.50.10" zu. Es ist in Ordnung, wenn die folgende Seite erscheint

Wenn das System erfolgreich gestartet wurde, stoppen Sie es.

[root@hostname ~]# apachectl stop

2. Grundeinstellung

2-1. Erstellung eines Ausgabeordners für die Protokolldatei

Um die Protokollierung unter /var/log/ zu verwalten, erstellen Sie ein httpd-Verzeichnis unter /var/log/ als Ordner für Apache-Protokolle.

Die Berechtigungen (Permissions) sollten 755 sein. Mit dieser Einstellung kann Apache schreiben, während andere Benutzer nur lesen können. Wenn andere Benutzer schreiben können, können die Protokolle verfälscht werden.

mkdir /var/log/httpd' muss nicht ausgeführt werden, wenn bereits ein Verzeichnis mit demselben Namen erstellt wurde.

[root@hostname ~]# mkdir /var/log/httpd
[root@hostname ~]# chmod 755 /var/log/httpd

Verwenden Sie das letztgenannte Verfahren, um die Einstellungen für die Apache-Protokollausgabe zu ändern.

Diese Prozedur ist nur eine Prozedur zur Erstellung eines Ordners für die zu speichernden Protokolle.

2-2. Bereichseinstellung

Ändern Sie die in httpd.conf aufgeführten Domain-Einstellungen. Die Apache-Konfiguration ist im Wesentlichen in der Datei httpd.conf zentralisiert. Wenn Sie also die Konfiguration ändern möchten, müssen Sie die Datei httpd.conf anpassen. Domänen müssen nicht eingerichtet werden, wenn es sich um eine lokale Umgebung handelt (nicht für die Öffentlichkeit im Internet zugänglich).

[root@hostname ~]# vi /etc/httpd/conf/httpd.conf

# Entfernen Sie die Auskommentierung und aktivieren Sie die Einstellung ServerName. Der Domänenname wird je nach Umgebung festgelegt.

httpd.conf【Vor der Änderung】


#ServerName www.example.com:80

httpd.conf【nach der Änderung】


ServerName domainname:80

2-3. Aktivierung von SSL-Modulen und Konfigurationsdateien

Aktivieren Sie SSL, um den Zugriff über https zu ermöglichen. SSL-Einstellungen haben mit SEO zu tun, und http ist aus Sicherheitsgründen keine gute Idee, also verwenden Sie https, wenn Sie nicht http verwenden müssen.

Installieren Sie das ssl-Modul mit yum.

[root@hostname ~]# yum -y install mod_ssl

Bei der Installation mit yum wird das ssl-Modul automatisch aktiviert, so dass Sie es nur noch installieren müssen. Eine Konfigurationsdatei wird ebenfalls automatisch erstellt. (/etc/httpd/conf.d/ssl.conf wird automatisch erstellt.)

2-4. Pfad der Protokollausgabe ändern

Ändern Sie das Ausgabeziel des Apache-Protokolls in den soeben erstellten Ausgabeordner für die Protokolldatei. Ändern Sie nur die ssl-Konfigurationsdatei, da sie in einem späteren Schritt so eingerichtet wird, dass der Zugriff nur über ssl (https) erfolgt.

[root@hostname ~]# vi /etc/httpd/conf.d/ssl.conf


ssl.conf【Vor der Änderung】


ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log

~Verkürzung~

CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"


ssl.conf【nach der Änderung】


ErrorLog /var/log/httpd/ssl_error_log
TransferLog /var/log/httpd/ssl_access_log

~Verkürzung~

CustomLog /var/log/httpd/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

Durch die obige Änderung wird das Ziel der Protokollausgabe auf "/var/log/httpd" geändert.


'%t, %h' usw. ist die Einstellung für die Protokollformatierung. Im Folgenden finden Sie eine Liste von Formaten, die häufig als Referenz verwendet werden.

【参考】

・%T:Zeit für die Bearbeitung der Anfrage (Sekunden)

・%h:Hostname oder IP-Adresse des Clients. Versucht nur, Hostnamen aufzulösen, wenn HostnameLookups auf On gesetzt ist.

・%r:Erste Zeile des Antrags

・%b:Bytes der Antwort (ohne HTTP-Header). CLF-Format, d.h. - wenn keines der Bytes gesendet wird

・%D:Zeit für die Bearbeitung der Anfrage (Mikrosekunden)

・%>s:HTTP-Status

2-5. Erstellung von SSL-Zertifikaten

Verfahren zur Erstellung von Zertifikaten. Die Selbstzertifizierung ist für private Unternehmen in Ordnung. Bei öffentlich zugänglichen Servern sollte von einer Selbstzertifizierung abgeraten werden.

Es gibt keinen Unterschied in der Sicherheit zwischen normalen Zertifikaten und Selbstzertifikaten. Dies kann den Unterschied ausmachen zwischen einem Zertifikat, das von einem Dritten als zuverlässig eingestuft werden kann, und einem, das dies nicht kann. (Bei der Selbstzertifizierung wird die URL-Leiste rot.) Stellen Sie also für öffentlich zugängliche Server (Server, die von Dritten eingesehen werden können) ein normales Zertifikat aus.

Die Standardzertifikatseinstellungen für Apache sind "/etc/pki/tls/certs/localhost.crt" und "/etc/pki/tls/private/localhost.key".

Die Einstellungen befinden sich in "SSLCertificateFile" und "SSLCertificateKeyFile" in "/etc/httpd/conf.d/ssl.conf".


【Für die Selbstzertifizierung】

Um ein Selbstzertifikat zu erstellen, führen Sie den folgenden Befehl aus. Als Root-Benutzer ausführen.

Wenn Sie "openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.crt" ausführen, werden Sie mehrmals aufgefordert, eine Antwort zu geben, und zwar immer mit Enter. Dabei handelt es sich um Informationen darüber, wer das Zertifikat ausstellt (z. B. in welchem Land er lebt und wie seine E-Mail-Adresse lautet). Wenn Sie ein normales Zertifikat ausstellen, geben Sie die richtigen Informationen ein und richten Sie es ein.

[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

【Für normale Zertifikate】

Um ein normales Zertifikat zu erstellen, führen Sie den folgenden Befehl aus. Als Root-Benutzer ausführen.

[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

Bei regulären Zertifikaten reicht dies nicht aus, um den Prozess abzuschließen. Die Arbeit umfasst die Übergabe der erstellten "server.csr" an die Zertifizierungsstelle, um ein Serverzertifikat ausstellen zu lassen, und die Installation des ausgestellten Serverzertifikats.

2-6. permanentes SSL (Secure Socket Layer)

Es ist nicht sicher, wenn der Zugriff über http erfolgt. Fügen Sie daher eine Einstellung hinzu, die eine Umleitung zu https vorsieht, wenn der Zugriff über http erfolgt.

Es ist möglich, den Zugriff über http zu verbieten, aber aus Sicht der Benutzerfreundlichkeit ist es empfehlenswert, eine Umleitung einzurichten. Führen Sie die folgenden Aufgaben als Root-Benutzer aus.

[root@hostname ~]# vi /etc/httpd/conf/httpd.conf

Fügen Sie am Ende den folgenden Text hinzu.

httpd.conf


<IfModule rewrite_module>
  RewriteEngine on
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

Es ist möglich, diese Einstellung so zu ändern, dass Zugriffe, die über http eingehen, über https abgewickelt werden.

Es wird darauf hingewiesen, dass diese Einstellung nicht funktioniert, wenn Sie über https kommen. (RewriteCond %{HTTPS} off)

Vergessen Sie nicht zu erwähnen, dass ohne diese Einstellung auch die https-Zugriffe umgeleitet werden, was zu einer Endlosschleife führt.

2-7. Bestätigung der Aktivierung (https-Zugang).

Nachdem Sie die verschiedenen Einstellungen vorgenommen haben, überprüfen Sie, ob die Website über https zugänglich ist. Starten Sie zuerst.

[root@hostname ~]# apachectl start

Der Zugriff erfolgt über den Browser. Dasselbe wie beim http-Zugang, aber in meinem Fall lautet die IP-Adresse des Servers 192.168.50.10, also greife ich auf "http://192.168.50.10" zu.

Die URL wird von "http://192.168.50.10" in "https://192.168.50.10" geändert, da die http-Umleitungseinstellung enthalten ist.

Nachdem er nun erfolgreich gestartet wurde, beenden Sie den Apache.

[root@hostname ~]# apachectl stop

2-8. Einstellung der automatischen Inbetriebnahme

Schließlich ist es schwierig, den Apache bei jedem Neustart des Servers zu starten, obwohl dies nicht zwingend erforderlich ist. Daher wird eine Konfiguration eingerichtet, die den Apache automatisch startet, wenn der Server gestartet wird. Er registriert sich auch bei dem Befehl systemctl. Bitte beachten Sie, dass dieses Verfahren für CentOS7 gilt. Wenn Sie also ein anderes Betriebssystem als CentOS7 verwenden, müssen Sie den Befehl Service verwenden, um dieses Problem zu lösen.

Erstellen Sie eine Datei "apache.service" und beschreiben Sie die erforderlichen Einstellungen.

[root@hostname ~]# touch /etc/systemd/system/apache.service
[root@hostname ~]# vi /etc/systemd/system/apache.service

Die folgenden Informationen werden bereitgestellt.

[Unit]
#Beschreibung.
Description=Apache
#Kontrolle vor und nach der Ausführung.
#Before=xxx.service
#After=xxx.service

[Service]
#Benutzer- und Gruppenbezeichnung
User=root
Group=root
#Nach der Aktivierung setzen Sie den Status auf Aktiviert.
Type=oneshot
RemainAfterExit=yes
#Starten, stoppen und neu laden.
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl restart

[Install]
#Runlevel 3 entsprechende Einstellungen.
WantedBy=multi-user.target

Wenn Sie die Beschreibung abgeschlossen haben, registrieren Sie sie mit dem Befehl 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. Zusammenfassung

Wir haben die bei der Installation von Apache erforderliche Erstkonfiguration beschrieben.

Apache arbeitet grundsätzlich mit den Standardeinstellungen, aber wenn Sie ihn tatsächlich anpassen wollen, beachten Sie bitte die Einstellungen für das Ziel der Log-Ausgabe und die SSL-Einstellungen, die Sie beim Betrieb des Systems ändern sollten.

Danke, dass Sie bis zum Ende zugesehen haben.