Initiële configuratie vereist van de installatie van Apache op CentOS tot het opstarten.


Datum van publicatie:8 december 2020.



INFOMARTION > Initiële configuratie vereist van de installatie van Apache op CentOS tot het opstarten.

Overzicht.

De eerste configuratiestappen die nodig zijn om Apache op CentOS te installeren en te starten. De informatie is gebaseerd op de veronderstelling dat CentOS7 wordt gebruikt.

De versies zijn als volgt.

CentOS versie7.6 (1810)
Apache-versie2.4.6

Inhoudsopgave

  1. installeer
  2. basisinstelling
  3. samenvatting

1. installeer

Dit gedeelte beschrijft de configuratie van Apache vanaf de installatie tot het opstarten.

1-1. Installeren van Apache

Voer de installatie van Apache uit met behulp van het commando yum. Voer het werk uit als root gebruiker.

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

1-2. Opstartcontrole (http toegang)

Controleer even of het toegankelijk is. Door Apache (httpd) te installeren met het yum commando wordt het apachectl commando ingeschakeld. Gebruik dit om Apache te 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.

Indien "Active: active (running)" wordt teruggezonden als resultaat van het uitvoeren van het commando "apachectl status", is het systeem met succes opgestart.

Open dan Apache vanuit uw browser. Stel http rechten in omdat de firewall (of iptables voor CentOS6 en ouder) standaard alleen ssh toegang toestaat op CentOS7. Ik zou ook graag een collectieve toestemmingsinstelling voor https willen maken. Voeg ook de optie 'permanent' toe om de configuratie permanent te maken.

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

Het is OK als "http" en "https" zijn toegevoegd aan "services". Toegang via browser. In mijn geval is het IP adres van de server 192.168.50.10, dus ik ga naar "http://192.168.50.10". Het is OK als de volgende pagina verschijnt

Als het systeem met succes is opgestart, stop het dan.

[root@hostname ~]# apachectl stop

2. basisinstelling

2-1. Aanmaken van een uitvoermap voor logbestanden

Om het loggen onder /var/log/ te beheren, maak je een httpd directory aan onder /var/log/ als een map voor Apache logs.

De permissies (rechten) moeten 755 zijn. Met deze instelling kan Apache schrijven, maar andere gebruikers kunnen alleen lezen. Als andere gebruikers kunnen schrijven, kan er met de logs geknoeid worden.

'mkdir /var/log/httpd' hoeft niet uitgevoerd te worden als er al een directory met dezelfde naam is aangemaakt.

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

Gebruik de laatste procedure om de Apache logboek uitvoer bestemming instellingen te wijzigen.

Deze procedure is slechts een procedure om een map te maken voor de logs die moeten worden opgeslagen.

2-2. Domein instelling

Verander de domein instellingen vermeld in httpd.conf. De configuratie van Apache is in principe gecentraliseerd in httpd.conf, dus als u de configuratie wilt wijzigen, wijzigt u httpd.conf. Domeinen hoeven niet te worden ingesteld als de omgeving lokaal is (niet open voor het publiek op het Internet).

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

# Haal het commentaar weg en schakel de instelling ServerName in. De domeinnaam wordt ingesteld naargelang de omgeving.

httpd.conf【Voor de verandering】


#ServerName www.example.com:80

httpd.conf【na de verandering】


ServerName domainname:80

2-3. Activering van SSL-modules en configuratiebestanden

Schakel SSL in om toegang via https mogelijk te maken. SSL-instellingen hebben te maken met SEO, en http is om veiligheidsredenen al helemaal geen goed idee, dus tenzij je http moet gebruiken, gebruik dan https.

Installeer de ssl module met yum.

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

Installeren met yum schakelt automatisch de ssl module in, dus je hoeft het alleen maar te installeren. Er wordt ook automatisch een configuratiebestand aangemaakt. (/etc/httpd/conf.d/ssl.conf wordt automatisch aangemaakt).

2-4. Verander log uitvoer pad

Verander de Apache logboek uitvoer bestemming in de logbestand uitvoer map die u zojuist heeft aangemaakt. Verander alleen het ssl configuratiebestand, omdat het in een volgende stap zal worden ingesteld om alleen via ssl (https) te worden benaderd.

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


ssl.conf【Voor de verandering】


ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log

~verkorting~

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


ssl.conf【na de verandering】


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

~verkorting~

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

De bovenstaande wijziging verandert de log uitvoer bestemming naar onder "/var/log/httpd".


"%t, %h", enz., dit is de logopmaak instelling. Hieronder volgt een lijst van formaten die vaak als referentie kunnen worden gebruikt.

【参考】

・%T:Tijd die nodig is om het verzoek te verwerken (seconden)

・%h:Hostnaam of IP-adres van de client. Probeer alleen hostnamen op te lossen als HostnameLookups is ingesteld op On

・%r:Eerste regel van het verzoek

・%b:Bytes van het antwoord (exclusief HTTP headers). CLF-formaat, d.w.z. - als geen van de bytes wordt verzonden

・%D:Tijd die nodig is om het verzoek te verwerken (microseconden)

・%>s:HTTP-status

2-5. Aanmaken van SSL-certificaten

Procedure voor het aanmaken van certificaten. Zelfcertificering is prima voor particuliere operaties. Voor openbaar toegankelijke servers moet zelfcertificering worden ontmoedigd.

Er is geen verschil in veiligheid tussen normale certificaten en zelfcertificaten. Dit kan het verschil uitmaken tussen een certificaat dat door een derde partij als betrouwbaar kan worden beoordeeld en een certificaat dat dat niet kan. (Bij zelfcertificatie wordt de URL-balk rood). Dus, voor publiek beschikbare servers (servers die door derden gezien kunnen worden), geef een normaal certificaat uit.

De standaard certificaatinstellingen voor Apache zijn "/etc/pki/tls/certs/localhost.crt" en "/etc/pki/tls/private/localhost.key".

De instellingen kunnen worden gevonden in "SSLCertificateFile" en "SSLCertificateKeyFile" in "/etc/httpd/conf.d/ssl.conf".


【Voor zelfcertificering】

Om een zelfcertificaat aan te maken, voert u het volgende commando uit. Start als root gebruiker.

Het uitvoeren van 'openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.crt' zal je verschillende keren om een antwoord vragen, allemaal met Enter, geen probleem. Dit zal informatie zijn over wie het certificaat afgeeft (bv. in welk land ze wonen en wat hun e-mailadres is). Als u een normaal certificaat afgeeft, voert u de juiste informatie in en stelt u het in.

[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

【Voor normale certificaten】

Om een normaal certificaat aan te maken, voert u het volgende commando uit. Start als root gebruiker.

[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

Voor gewone certificaten is dit niet voldoende om het proces te voltooien. Het werk omvat het overhandigen van het aangemaakte 'server.csr' aan de Certificate Authority om een servercertificaat te laten uitgeven en het installeren van het servercertificaat dat is uitgegeven.

2-6. permanent SSL (Secure Socket Layer)

Het is niet goed beveiligd als de toegang via http verloopt, dus voeg een instelling toe om door te verwijzen naar https als de toegang via http verloopt.

Het is mogelijk de toegang via http te verbieden, maar uit een oogpunt van bruikbaarheid is het aan te bevelen een redirect in te stellen. Voer de volgende taken uit als root gebruiker.

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

Voeg aan het eind het volgende toe.

httpd.conf


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

Het is mogelijk om deze instelling te wijzigen zodat toegang die via http binnenkomt, via https wordt afgehandeld.

Er wordt gezegd dat deze instelling niet werkt als u via https komt. (RewriteCond %{HTTPS} off)

Vergeet niet te vermelden dat zonder deze instelling, https toegangen ook zullen worden omgeleid, wat resulteert in een eindeloze lus.

2-7. Bevestiging van activering (https toegang).

Controleer, nu de verschillende instellingen zijn voltooid, of de site toegankelijk is via https. Begin eerst.

[root@hostname ~]# apachectl start

Toegang via browser. Hetzelfde als voor http toegang, maar in mijn geval is het IP adres van de server 192.168.50.10, dus heb ik toegang tot "http://192.168.50.10".

De URL is veranderd van "http://192.168.50.10" naar "https://192.168.50.10" omdat de http redirect instelling is opgenomen.

Nu dat het succesvol is gestart, stop Apache.

[root@hostname ~]# apachectl stop

2-8. Automatische opstart instelling

Tenslotte, hoewel het niet verplicht is, is het moeilijk om Apache te starten telkens als de server opnieuw wordt opgestart, dus wordt er een configuratie opgezet zodat Apache automatisch start wanneer de server wordt opgestart. Het registreert ook op het systemctl commando. Merk op dat deze procedure is voor CentOS7, dus als u iets anders gebruikt dan CentOS7, zult u het Service commando moeten gebruiken om dit af te handelen.

Maak een "apache.service" bestand en beschrijf de vereiste instellingen.

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

De volgende informatie wordt verstrekt.

[Unit]
#Beschrijving.
Description=Apache
#Controle voor en na de uitvoering.
#Before=xxx.service
#After=xxx.service

[Service]
#Aanwijzing gebruiker en groep
User=root
Group=root
#Eenmaal geactiveerd, zet de status op Geactiveerd.
Type=oneshot
RemainAfterExit=yes
#Starten, stoppen en herladen.
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl restart

[Install]
#Runlevel 3 gelijkwaardige instellingen.
WantedBy=multi-user.target

Als u klaar bent met het beschrijven, registreer het dan met het commando 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. samenvatting

We hebben de initiële configuratie beschreven die nodig is wanneer Apache wordt geïnstalleerd.

Apache werkt in principe tot op zekere hoogte met de standaardinstellingen, maar als u het echt wilt aanpassen, raadpleeg dan de instellingen voor de bestemming van de logboekuitvoer en SSL-instellingen, die u moet wijzigen als u het systeem gebruikt.

Bedankt voor het kijken tot het einde.