Initial konfiguration krävs från installation av Apache på CentOS till uppstart.
Datum för offentliggörande:8 december 2020.
INFOMARTION > Initial konfiguration krävs från installation av Apache på CentOS till uppstart.
Översikt.
Detta är den första konfigurationen som krävs för att installera och starta Apache på CentOS. Informationen bygger på antagandet att CentOS7 används.
Versionerna är följande.
CentOS-version | 7.6 (1810) |
---|---|
Apache-version | 2.4.6 |
Innehållsförteckning
- installera
- grundinställning
- 2-1. Skapa en utdatamapp för loggfilen
- 2-2. Domäninställning
- 2-3. Aktivering av SSL-moduler och konfigurationsfiler
- 2-4. Ändra sökväg för loggutgång
- 2-5. Skapande av SSL-certifikat
- 2-6. permanent SSL (Secure Socket Layer)
- 2-7. Bekräftelse av aktivering (https-åtkomst).
- 2-8. Inställning för automatisk start
- sammanfattning
1. installera
I det här avsnittet beskrivs konfigurationen av Apache från installation till uppstart.
1-1. Installera Apache
Installera Apache med hjälp av kommandot yum. Utför arbetet som rotanvändare.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install httpd
1-2. Uppstartskontroll (http-åtkomst)
Kontrollera kortfattat om den är tillgänglig. Genom att installera Apache (httpd) med kommandot yum aktiveras kommandot apachectl. Använd detta för att starta 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.
Om "Active: active (running)" returneras som ett resultat av kommandot "apachectl status" har systemet startats framgångsrikt.
Öppna sedan Apache från din webbläsare. Ställ in http-behörigheter eftersom brandväggen (eller iptables för CentOS6 och tidigare) endast tillåter ssh-åtkomst som standard på CentOS7. Jag skulle också vilja införa en kollektiv behörighetsinställning för https. Lägg också till alternativet "permanent" för att göra konfigurationen permanent.
[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:
Det är OK om "http" och "https" har lagts till i "services". Tillgänglig via webbläsaren. I mitt fall är serverns IP-adress 192.168.50.10, så jag går in på "http://192.168.50.10". Det är OK om följande sida visas
När systemet har startats framgångsrikt stoppar du det.
[root@hostname ~]# apachectl stop
2. grundinställning
2-1. Skapa en utdatamapp för loggfilen
Om du vill hantera loggning under /var/log/ skapar du en httpd-katalog under /var/log/ som en mapp för Apache-loggar.
Behörigheterna (permissions) ska vara 755. Med den här inställningen kan Apache skriva, men andra användare kan bara läsa. Om andra användare kan skriva kan loggarna manipuleras.
"mkdir /var/log/httpd" behöver inte utföras om en katalog med samma namn redan har skapats.
[root@hostname ~]# mkdir /var/log/httpd
[root@hostname ~]# chmod 755 /var/log/httpd
Använd den sistnämnda proceduren för att ändra inställningarna för destinationen för Apache-loggutdata.
Den här proceduren är endast en procedur för att skapa en mapp för de loggar som ska lagras.
2-2. Domäninställning
Ändra domäninställningarna i httpd.conf. Apache-konfigurationen är i princip centraliserad i httpd.conf, så om du vill ändra konfigurationen ändrar du httpd.conf. Domäner behöver inte inrättas om miljön är lokal (inte öppen för allmänheten på Internet).
[root@hostname ~]# vi /etc/httpd/conf/httpd.conf
# Ta bort kommentaren och aktivera inställningen ServerName. Domännamnet ställs in i enlighet med miljön.
#ServerName www.example.com:80
ServerName domainname:80
2-3. Aktivering av SSL-moduler och konfigurationsfiler
Aktivera SSL för att tillåta åtkomst via https. SSL-inställningar är relaterade till SEO, och http är inte en bra idé av säkerhetsskäl i första hand, så om du inte måste använda http, använd https.
Installera ssl-modulen med yum.
[root@hostname ~]# yum -y install mod_ssl
Installation med yum aktiverar automatiskt ssl-modulen, så du behöver bara installera den. En konfigurationsfil skapas också automatiskt. (/etc/httpd/conf.d/ssl.conf skapas automatiskt.)
2-4. Ändra sökväg för loggutgång
Ändra destinationen för Apaches loggutdata till den mapp för loggfilutdata som du just har skapat. Ändra endast ssl-konfigurationsfilen, eftersom den kommer att konfigureras i ett senare steg för att endast nås via ssl (https).
[root@hostname ~]# vi /etc/httpd/conf.d/ssl.conf
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
~förkortning~
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
~förkortning~
CustomLog /var/log/httpd/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
Ovanstående ändring ändrar destinationen för loggutmatningen till "/var/log/httpd".
"%t, %h" etc., är detta inställningen för loggformatering. Nedan följer en förteckning över format som ofta kan användas som referens.
【参考】
・%T:Tidsåtgång för att behandla begäran (sekunder)
・%h:Klientens värdnamn eller IP-adress. Försöker bara lösa värdnamn om HostnameLookups är inställt på On.
・%r:Första raden i begäran
・%b:Bytes i svaret (exklusive HTTP-huvuden). CLF-format, dvs. - om ingen av bytesna skickas
・%D:Tidsåtgång för att behandla begäran (mikrosekunder)
・%>s:HTTP-status
2-5. Skapande av SSL-certifikat
Förfarande för att skapa certifikat. Självcertifiering är bra för privata verksamheter. För allmänt tillgängliga servrar bör självcertifiering avrådas.
Det finns ingen skillnad i säkerhet mellan vanliga certifikat och självcertifikat. Detta kan vara skillnaden mellan ett certifikat som kan bedömas som tillförlitligt av en tredje part och ett som inte kan det. (Vid självcertifiering blir URL-fältet rött.) För allmänt tillgängliga servrar (servrar som kan ses av tredje part) ska du utfärda ett normalt certifikat.
Standardinställningarna för certifikat för Apache är "/etc/pki/tls/certs/localhost.crt" och "/etc/pki/tls/private/localhost.key".
Inställningarna finns i "SSLCertificateFile" och "SSLCertificateKeyFile" i "/etc/httpd/conf.d/ssl.conf".
【För självcertifiering】
För att skapa ett självcertifikat utför du följande kommando. Kör som root-användare.
Om du kör "openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.crt" kommer du att få ett svar flera gånger, alla med Enter, inga problem. Detta är information om vem som utfärdar certifikatet (t.ex. vilket land de bor i och vilken e-postadress de har). Om du utfärdar ett vanligt certifikat anger du rätt information och konfigurerar det.
[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 normala certifikat】
Om du vill skapa ett normalt certifikat utför du följande kommando. Kör som root-användare.
[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
För vanliga certifikat är detta inte tillräckligt för att slutföra processen. Arbetet innebär att den skapade "server.csr" överlämnas till certifikatutfärdaren för att få ett servercertifikat utfärdat och att det utfärdade servercertifikatet installeras.
2-6. permanent SSL (Secure Socket Layer)
Det är ingen bra säkerhet om åtkomsten sker via http, så lägg till en inställning för att omdirigera till https om åtkomsten sker via http.
Det är möjligt att förbjuda åtkomst via http, men av användarvänlighetsskäl rekommenderas en omdirigering. Utför följande uppgifter som root-användare.
[root@hostname ~]# vi /etc/httpd/conf/httpd.conf
Lägg till följande i slutet.
<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
Det är möjligt att ändra den här inställningen så att åtkomster som kommer in via http hanteras via https.
Det anges att den här inställningen inte fungerar om du kommer via https. (RewriteCond %{HTTPS} off)
Glöm inte att nämna att utan den här inställningen kommer även https-åtkomster att omdirigeras, vilket leder till en oändlig slinga.
2-7. Bekräftelse av aktivering (https-åtkomst).
När du har gjort de olika inställningarna kan du kontrollera att webbplatsen kan nås via https. Börja med att starta upp först.
[root@hostname ~]# apachectl start
Tillgänglig via webbläsaren. Samma som för http-åtkomst, men i mitt fall är serverns IP-adress 192.168.50.10, så jag får tillgång till "http://192.168.50.10".
URL:n ändras från "http://192.168.50.10" till "https://192.168.50.10" eftersom inställningen för http-omdirigering ingår.
När Apache har startats stoppar du Apache.
[root@hostname ~]# apachectl stop
2-8. Inställning för automatisk start
Slutligen, även om det inte är obligatoriskt, är det svårt att starta Apache varje gång servern startas om, så en konfiguration läggs in så att Apache startas automatiskt när servern startas. Den registrerar också kommandot systemctl. Observera att den här proceduren gäller för CentOS7, så om du använder något annat än CentOS7 måste du använda kommandot Service för att hantera detta.
Skapa en "apache.service"-fil och beskriv de nödvändiga inställningarna.
[root@hostname ~]# touch /etc/systemd/system/apache.service
[root@hostname ~]# vi /etc/systemd/system/apache.service
Följande information tillhandahålls.
[Unit]
#Beskrivning.
Description=Apache
#Kontroll före och efter utförandet.
#Before=xxx.service
#After=xxx.service
[Service]
#Användar- och gruppbeteckning
User=root
Group=root
#När den är aktiverad, sätts statusen till Aktiverad.
Type=oneshot
RemainAfterExit=yes
#Starta, stoppa och ladda om.
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl restart
[Install]
#Motsvarande inställningar för Runlevel 3.
WantedBy=multi-user.target
När du har beskrivit den färdigt registrerar du den med kommandot 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. sammanfattning
Vi har beskrivit den första konfigurationen som krävs när Apache installeras.
Apache fungerar i princip till viss del med standardinställningarna, men om du vill anpassa den, se inställningarna för destinationen för loggutdata och SSL-inställningarna, som du bör ändra när du använder systemet.
Tack för att du tittade på till slutet.
■INFORMATION
Klicka här för att komma till den översta sidan med information.
■PROFILE
■Kontaktuppgifter.