Den indledende konfiguration er nødvendig fra installation af Apache på CentOS til opstart.


Udgivelsesdato:8. december 2020.



INFOMARTION > Den indledende konfiguration er nødvendig fra installation af Apache på CentOS til opstart.

Oversigt.

De indledende konfigurationstrin, der kræves for at installere og starte Apache på CentOS. Oplysningerne er baseret på den antagelse, at der anvendes CentOS7.

Versionerne er som følger.

CentOS-version7.6 (1810)
Apache-version2.4.6

Indholdsfortegnelse

  1. installere
  2. grundlæggende indstilling
  3. resumé

1. installere

Dette afsnit beskriver konfigurationen af Apache fra installation til opstart.

1-1. Installation af Apache

Installér Apache ved hjælp af yum-kommandoen. Udfør arbejdet som root-bruger.

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

1-2. Opstartskontrol (http-adgang)

Kontroller kort, om den er tilgængelig. Installation af Apache (httpd) med yum-kommandoen aktiverer apachectl-kommandoen. Brug dette til at starte 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.

Hvis der returneres "Active: active (running)" som et resultat af udførelsen af kommandoen "apachectl status", er systemet startet med succes.

Få derefter adgang til Apache fra din browser. Indstil http-tilladelser, da firewall (eller iptables for CentOS6 og tidligere) kun tillader ssh-adgang som standard på CentOS7. Jeg vil også gerne indsætte en kollektiv tilladelsesindstilling for https. Tilføj også indstillingen "permanent" for at gøre 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 er OK, hvis "http" og "https" er blevet tilføjet til "services". Adgang via browser. I mit tilfælde er serverens IP-adresse 192.168.50.10, så jeg har adgang til "http://192.168.50.10". Det er OK, hvis følgende side vises

Når systemet er blevet startet, skal du stoppe det.

[root@hostname ~]# apachectl stop

2. grundlæggende indstilling

2-1. Oprettelse af en udgangsmappe til logfilen

Hvis du vil administrere logning under /var/log/, skal du oprette en httpd-mappe under /var/log/ som en mappe til Apache-logfiler.

Tilladelserne (permissions) skal være 755. Denne indstilling gør det muligt for Apache at skrive, men andre brugere kan kun læse. Hvis andre brugere kan skrive, kan logfilerne manipuleres.

'mkdir /var/log/httpd' behøver ikke at blive udført, hvis der allerede er oprettet en mappe med samme navn.

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

Brug sidstnævnte procedure til at ændre indstillingerne for destinationen for Apache-logoutput.

Denne procedure er kun en procedure til oprettelse af en mappe, hvor logfilerne skal gemmes.

2-2. Indstilling af domæne

Ændre de domæneindstillinger, der er anført i httpd.conf. Apache-konfigurationen er grundlæggende centraliseret i httpd.conf, så hvis du ønsker at ændre konfigurationen, skal du ændre httpd.conf. Det er ikke nødvendigt at oprette domæner, hvis miljøet er lokalt (ikke åbent for offentligheden på internettet).

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

# Fjern udkommentering og aktiver indstillingen ServerName. Domænenavnet indstilles i overensstemmelse med miljøet.

httpd.conf【Før ændring】


#ServerName www.example.com:80

httpd.conf【efter ændringen】


ServerName domainname:80

2-3. Aktivering af SSL-moduler og konfigurationsfiler

Aktiver SSL for at tillade adgang via https. SSL-indstillingerne er relateret til SEO, og http er i første omgang ikke en god idé af sikkerhedshensyn, så medmindre du er nødt til at bruge http, skal du bruge https.

Installer ssl-modulet med yum.

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

Installation med yum aktiverer automatisk ssl-modulet, så du behøver kun at installere det. Der oprettes også automatisk en konfigurationsfil. (/etc/httpd/conf.d/ssl.conf oprettes automatisk.)

2-4. Ændre stien til logudgangen

Ændr destinationen for Apache-logoutput til den logfiloutputmappe, du lige har oprettet. Du skal kun ændre ssl-konfigurationsfilen, da den i et efterfølgende trin vil blive konfigureret til kun at blive tilgået via ssl (https).

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


ssl.conf【Før ændring】


ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log

~forkortelse~

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


ssl.conf【efter ændringen】


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

~forkortelse~

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

Ovenstående ændring ændrer logoutputdestinationen til under "/var/log/httpd".


"%t, %h" osv., er dette indstillingen for logformatering. Nedenstående er en liste over formater, der ofte kan anvendes som reference.

【参考】

・%T:Den tid, det tager at behandle anmodningen (sekunder)

・%h:Klientens værtsnavn eller IP-adresse. Forsøger kun at opløse værtsnavne, hvis HostnameLookups er indstillet til On

・%r:Første linje i anmodningen

・%b:Bytes i svaret (eksklusive HTTP-headere). CLF-format, dvs. - hvis ingen af bytesne sendes

・%D:Den tid, det tager at behandle anmodningen (mikrosekunder)

・%>s:HTTP-status

2-5. Oprettelse af SSL-certifikater

Procedure for oprettelse af certifikater. Selvcertificering er fint for private virksomheder. For offentligt tilgængelige servere bør man fraråde selvcertificering.

Der er ingen forskel i sikkerheden mellem normale certifikater og selvcertifikater. Dette kan være forskellen mellem et certifikat, der kan vurderes pålideligt af en tredjepart, og et certifikat, der ikke kan det. (Ved selvcertificering bliver URL-linjen rød.) Så for offentligt tilgængelige servere (servere, der kan ses af tredjeparter) skal du udstede et normalt certifikat.

Standardcertifikatindstillingerne for Apache er "/etc/pki/tls/certs/localhost.crt" og "/etc/pki/tls/private/localhost.key".

Indstillingerne kan findes i "SSLCertificateFile" og "SSLCertificateKeyFile" i "/etc/httpd/conf.d/ssl.conf".


【Til selvcertificering】

Hvis du vil oprette et selvcertificeret certifikat, skal du udføre følgende kommando. Kør som root-bruger.

Hvis du kører 'openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.crt' vil du blive bedt om et svar flere gange, alle med Enter, intet problem. Dette vil være oplysninger om, hvem der udsteder certifikatet (f.eks. hvilket land de bor i, og hvad deres e-mail-adresse er). Hvis du udsteder et normalt certifikat, skal du indtaste de korrekte oplysninger og konfigurere 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

【For normale certifikater】

Hvis du vil oprette et normalt certifikat, skal du udføre følgende kommando. Kør som root-bruger.

[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

For almindelige certifikater er dette ikke tilstrækkeligt til at afslutte processen. Arbejdet består i at aflevere den oprettede "server.csr" til certifikatudstederen for at få udstedt et servercertifikat og installere det servercertifikat, der er blevet udstedt.

2-6. permanent SSL (Secure Socket Layer)

Det er ikke god sikkerhed, hvis adgangen sker via http, så tilføj en indstilling til at omdirigere til https, hvis adgangen sker via http.

Det er muligt at forbyde adgang via http, men ud fra et brugervenlighedssynspunkt anbefales det at oprette en omdirigering. Udfør følgende opgaver som root-bruger.

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

Tilføj følgende til sidst.

httpd.conf


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

Det er muligt at ændre denne indstilling, så adganger, der kommer ind via http, håndteres via https.

Det er angivet, at denne indstilling ikke virker, hvis du kommer via https. (RewriteCond %{HTTPS} off)

Glem ikke at nævne, at uden denne indstilling vil https-adgange også blive omdirigeret, hvilket resulterer i en endeløs løkke.

2-7. Bekræftelse af aktivering (https-adgang).

Når du har foretaget de forskellige indstillinger, skal du kontrollere, at webstedet kan tilgås via https. Start først op.

[root@hostname ~]# apachectl start

Adgang via browser. Det samme som for http-adgang, men i mit tilfælde er serverens IP-adresse 192.168.50.10, så jeg får adgang til "http://192.168.50.10".

URL'en ændres fra "http://192.168.50.10" til "https://192.168.50.10", fordi http-omdirigeringsindstillingen er inkluderet.

Nu, hvor det er lykkedes at starte Apache, skal du stoppe Apache.

[root@hostname ~]# apachectl stop

2-8. Indstilling af automatisk opstart

Endelig er det, selv om det ikke er obligatorisk, svært at starte Apache hver gang serveren genstartes, så en konfiguration er sat på plads, så Apache starter automatisk, når serveren startes. Den registreres også i kommandoen systemctl. Bemærk venligst, at denne procedure er for CentOS7, så hvis du bruger noget andet end CentOS7, skal du bruge kommandoen Service til at håndtere dette.

Opret en "apache.service"-fil og beskriv de nødvendige indstillinger.

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

Der gives følgende oplysninger.

[Unit]
#Beskrivelse.
Description=Apache
#Kontrol før og efter udførelsen.
#Before=xxx.service
#After=xxx.service

[Service]
#Betegnelse af brugere og grupper
User=root
Group=root
#Når den er aktiveret, skal du indstille status til Aktiveret.
Type=oneshot
RemainAfterExit=yes
#Start, stop og genindlæsning.
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl restart

[Install]
#Runlevel 3 tilsvarende indstillinger.
WantedBy=multi-user.target

Når du er færdig med at beskrive den, skal du registrere den med kommandoen 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. resumé

Vi har beskrevet den indledende konfiguration, der kræves, når Apache installeres.

Apache fungerer i princippet til en vis grad med standardindstillingerne, men hvis du faktisk tilpasser den, skal du se indstillingerne for destinationen for logoutput og SSL-indstillingerne, som du bør ændre, når du bruger systemet.

Tak, fordi du kiggede med til slutningen.




■INFORMATION

Klik her for at gå til den øverste side med oplysninger.


■PROFILE

Klik her for at se en profil.


■Kontaktoplysninger.

For forespørgsler om artiklen kan du kontakte os her.