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-Version | 7.6 (1810) |
---|---|
Apache-Version | 2.4.6 |
Inhaltsübersicht
- installieren
- Grundeinstellung
- 2-1. Erstellung eines Ausgabeordners für die Protokolldatei
- 2-2. Bereichseinstellung
- 2-3. Aktivierung von SSL-Modulen und Konfigurationsdateien
- 2-4. Pfad der Protokollausgabe ändern
- 2-5. Erstellung von SSL-Zertifikaten
- 2-6. permanentes SSL (Secure Socket Layer)
- 2-7. Bestätigung der Aktivierung (https-Zugang).
- 2-8. Einstellung der automatischen Inbetriebnahme
- 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.
#ServerName www.example.com:80
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
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"
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.
<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.
■INFORMATION
Bitte klicken Sie hier, um zur Seite INFORMATIONEN zu gelangen.
■PROFILE
Bitte klicken Sie hier für ein Profil.
■Kontaktinformationen.
Wenn Sie Fragen zu diesem Artikel haben, kontaktieren Sie uns bitte hier.