Sådan installeres Apache HTTPD på CentOS Stream 9

Apache HTTP Server (httpd) er en af ​​de mest populære og robuste webservere til rådighed, kendt for sin fleksibilitet, ydeevne og brede vifte af funktioner. Det er meget brugt til hosting af websteder og webapplikationer. Opsætning af Apache på CentOS Stream 9 giver dig mulighed for at udnytte dens kraftfulde muligheder til dine webhostingbehov. Derudover sikrer sikring af dit websted med et gratis SSL-certifikat fra Let's Encrypt, at dit websted er krypteret og pålideligt.

For at installere Apache HTTP Server på CentOS Stream 9 og konfigurere et Let's Encrypt SSL-certifikat skal du følge trinene beskrevet i denne vejledning. Dette vil give dig en sikker og effektiv webserverkonfiguration.

Sikring af et fuldt opdateret CentOS-streamsystem før Apache-installation

Før vi fortsætter med Apache-installationen på din CentOS Stream-maskine, skal vi bekræfte, at vores system er fuldt opdateret. Dette er mere end blot en sikkerhedsforanstaltning. Opdatering af dit system hjælper med at forhindre kompatibilitetsproblemer og forbedrer dets stabilitet, sikkerhed og ydeevne markant.

For at sætte dette i gang skal du udføre følgende kommando i din terminal:

sudo dnf upgrade --refresh

Denne kommando sætter opdateringsmekanismen i gang, fremskaffer og installerer dit systems seneste softwareopdateringer og sikkerhedsrettelser. Det er afgørende at lade opdateringsprocessen afslutte fuldt ud, før du går videre til Apache-installationen. Dette sikrer, at dit system er i sin bedste tilstand, optimalt konfigureret og forberedt til at køre Apache uden at støde på problemer eller kompatibilitetsproblemer.

Installer Apache HTTPD via DNF Command

Det andet trin er at installere Apache eller HTTPD på dit CentOS Stream-system. Dette er en ligetil proces, takket være den magtfulde DNF-pakkemanager. DNF, eller Dandified Yum, pakkehåndteringen forenkler installation, opdatering og administration af softwarepakker.

Kickstart installationen af ​​Apache (HTTPD) ved at køre følgende kommando i din terminal:

sudo dnf install httpd

Denne kommando starter installationsmekanismen og henter og installerer alle de nødvendige komponenter for at tillade Apache (HTTPD) at køre på dit system. Processen bør afsluttes på blot et par minutter. Bagefter vil du have Apache (HTTPD) fuldt installeret og klar til brug.

Aktivering og konfiguration af Apache HTTPD til at køre ved systemstart

Efter den vellykkede installation af Apache (HTTPD) på dit CentOS Stream-system, er følgende nøglehandling at aktivere tjenesten og konfigurere den til at starte automatisk ved systemstart. Apache (HTTPD) er altid aktiv og parat til at betjene webanmodninger, når dit system starter op.

Hvis Apache (HTTPD)-tjenesten ikke er aktiv eller indstillet til at køre som standard, skal du bruge disse kommandoer i din terminal til at starte tjenesten og sikre, at den kører ved systemopstart:

sudo systemctl start httpd
sudo systemctl enable httpd

Den første kommando, sudo systemctl start httpd, starter Apache (HTTPD)-tjenesten, mens den anden kommando, sudo systemctl enable httpd, indstiller tjenesten til at køre automatisk ved systemstart. Ved at implementere disse to kommandoer garanterer du, at Apache (HTTPD) er konstant tilgængelig og aktiv, klar til at imødekomme webanmodninger, hver gang dit system tændes.

Som et alternativ kan du kondensere de to foregående trin til en enkelt kommando:

sudo systemctl enable httpd --now

Indstillingen –now i kommandoen sudo systemctl enable httpd –now starter samtidig Apache (HTTPD)-tjenesten og konfigurerer den til automatisk at starte ved systemopstart. Denne enkelt kommando forener de to separate kommandoer fra de foregående trin, hvilket gør processen mere strømlinet og effektiv.

Tjek Apache HTTPD-tjenestestatus

Endelig bør vi verificere den vellykkede implementering og funktion af Apache (HTTPD) ved at bruge følgende systemctl-kommando:

systemctl status httpd

Denne kommando giver dig status i realtid for Apache (HTTPD)-tjenesten, inklusive eventuelle fejl eller meddelelser, der måtte være opstået. Ved at granske tjenestens status kan du bekræfte, at Apache (HTTPD) kører problemfrit.

Konfigurer FirewallD-regler

Efter at have installeret Apache (HTTPD) på CentOS Stream, vil du muligvis bemærke, at firewallen ikke inkluderer forudkonfigurerede regler for standardporte 80 og 443. Du skal konfigurere disse firewallregler, før du går videre for at forbedre sikkerheden i din webapplikation.

Indstil firewall-reglerne ved hjælp af firewall-cmd-værktøjet, CentOS Streams standard firewall-administrationsværktøj. De regler, du skal konfigurere, vil variere afhængigt af de porte, du har til hensigt at bruge. Vi lister dog alle kritiske muligheder i de følgende trin.

Åbning af porte 80 og 443

Vi kører de to første kommandoer for at åbne porte 80 og 443. Disse porte håndterer henholdsvis indkommende HTTP- og HTTPS-trafik.

For at åbne port 80 eller HTTP skal du køre følgende kommando:

sudo firewall-cmd --permanent --add-port=80/tcp

Åbn derefter port 443 eller HTTPS med den efterfølgende kommando:

sudo firewall-cmd --permanent --add-port=443/tcp

Bekræft Firewall-ændringer

Efter at have specificeret de porte, der skal åbnes, skal vi instruere firewallen om at implementere disse ændringer. Gør dette ved at genindlæse firewallreglerne ved hjælp af kommandoen nedenfor:

sudo firewall-cmd --reload

Forståelse af implikationerne

Det er altafgørende at have en indgående forståelse af de sikkerhedsmæssige konsekvenser, der følger med at åbne porte på dit system. Ved kun at åbne de nødvendige porte selektivt, styrker du din webapplikations forsvar mod uautoriseret adgang og potentielle sikkerhedstrusler. Dette understreger, hvorfor det er vigtigt at konfigurere firewallreglerne for din Apache (HTTPD)-installation på CentOS Stream korrekt.

Bekræfter Apache HTTPD-adgang

Efter omhyggeligt konfigurering af Firewalld, skal du sikre dig, at du kan få adgang til Apache (HTTPD)-destinationssiden via din webbrowser. Start din foretrukne webbrowser og gå til enten http://localhost eller http://din_server_ip.

Sådan får du adgang via din servers IP:

http://your_server_ip

Alternativt, for at få adgang via localhost:

http://localhost

Når du konfigurerer alt præcist, vil Apache (HTTPD) standarddestinationssiden hilse på dig. Denne side viser en meddelelse, der bekræfter, at serveren fungerer som forventet. Siden vil ligne:

Opret og konfigurer en virtuel vært

Dette afsnit vil dykke ned i det praktiske aspekt ved at skabe en virtuel vært ved hjælp af Apache (HTTPD), en fleksibel webserver kendt for sin evne til at hoste flere domæner på en enkelt server. Dette værktøj er analogt med "server blocks"-attributten for Nginx. I den efterfølgende vejledning vil vi illustrere, hvordan man formulerer en virtuel vært for et givet domæne, repræsenteret som "eksempel-domæne.com." Du vil naturligvis erstatte dette eksempeldomæne med dit specifikke domænenavn.

Oprettelse af virtuelle værter letter uafhængig styring af konfigurationer for hvert domæne. Dette giver kontrol over forskellige facetter af dit webservermiljø, herunder sikkerhed, ydeevne og brugerdefinerede indstillinger. Dette kan vise sig at være særligt fordelagtigt, hvis du sigter mod at hoste flere websteder på en enkelt server eller opretholde separate indstillinger for forskellige dele af dit websted. Med Apache (HTTPD) kan du uden besvær udtænke virtuelle værter, der opfylder disse krav.

Oprettelse og konfiguration af mapper

Påbegyndelse af din virtuelle værtsopsætning involverer oprettelse af en ny mappe, der fungerer som rodmappe for din virtuelle vært. Navnet på denne mappe stemmer typisk overens med dit domænenavn.

For eksempel, hvis dit domænenavn er "example.com", vil du generere en ny mappe med kommandoen:

sudo mkdir /var/www/example.com

Denne kommando nødvendiggør udskiftning af "example.com" med dit domænenavn. Således vil biblioteket rumme filer og aktiver forbundet med dine virtuelle værter, herunder HTML-filer, billeder, scripts og andre ressourcer.

Opsætning af individuelle mapper for hver virtuel vært letter en tydelig adskillelse af bekymringer, hvilket er vigtigt i forbindelse med sikkerhed og fejlfinding.

Den nye mappe kan kræve passende ejerskab og tilladelser for at tillade Apache (HTTPD) adgang. De efterfølgende kommandoer angiver det korrekte ejerskab og tilladelser:

sudo chown -R apache:apache /var/www/example.com
sudo chmod -R 755 /var/www/example.com

Med den nye mappe klar, kan vi konfigurere din virtuelle vært.

Oprettelse af en index.html-fil

En teksteditor genererer en index.html-fil til din virtuelle vært. Til vores selvstudie bruger vi nano-teksteditoren, selvom du kan vælge hvilken som helst teksteditor, du foretrækker.

Udfør følgende kommando for at oprette filen index.html:

sudo nano /var/www/example.com/index.html

Begynd at oprette indholdet til din index.html-fil i teksteditoren. Denne fil fungerer typisk som det første kontaktpunkt for en bruger, der besøger dit websted.

Her er et simpelt eksempel:

<html>
  <head>
    <title>Example Domain</title>
  </head>
  <body>
    <h1>Welcome to Example Domain</h1>
    <p>This is a sample page for the domain example.com.</p>
  </body>
</html>

Når du har færdiggjort indholdet af din index.html-fil, skal du gemme filen og afslutte teksteditoren. I tilfælde af nano opnås dette ved at trykke på Ctrl + X, Y og Enter.

Konfiguration af virtuelle værtsmapper

At sikre korrekt mappeopsætning til Apache-webserveren garanterer en problemfri og organiseret konfiguration. Specifikt bruges mapperne "websteder-tilgængelige" og "websteder-aktiverede". Denne konfiguration afspejler den, der blev vedtaget i Nginx og fremmer organiserede og tilgængelige konfigurationer.

For at oprette disse mapper skal du bruge følgende kommando:

sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

Instruer derefter Apache om at lede efter virtuelle værtsfiler i mappen "/etc/httpd/sites-available":

sudo nano /etc/httpd/conf/httpd.conf

I den åbnede konfigurationsfil skal du tilføje linjen "IncludeOptional sites-enabled/*.conf" til sidst. Denne linje instruerer Apache om at inkludere alle virtuelle værtskonfigurationsfiler i mappen "sites-enabled".

IncludeOptional sites-enabled/*.conf

Du kan eventuelt kommentere "IncludeOptional conf.d/*.conf", hvilket deaktiverer standardmappen, hvor Apache søger efter virtuelle værtsfiler. Dette hjælper med at forhindre eventuel forvirring.

Eksempel:

#IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf

For at gemme filen og afslutte, skal du bruge tastaturkombinationen CTRL + O, efterfulgt af CTRL + X.

Opret den virtuelle værtskonfigurationsfil

Dernæst, ved hjælp af din teksteditor, vil vi oprette en virtuel værtskonfigurationsfil på /etc/httpd/sites-available/example.com.conf.

sudo nano /etc/httpd/sites-available/example.com.conf

Udfyld pladsholderoplysningerne i den følgende konfigurationsblok med dit ServerName, ServerAlias ​​og Document Root, før du kopierer det til den virtuelle værtskonfigurationsfil, der findes på /etc/httpd/sites-available/example.com.conf.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName example_domain
    ServerAlias www.example_domain
    DocumentRoot /var/www/example.com/
</VirtualHost>

Juster serverdirektiverne, så de passer til dine specifikke krav.

Trin 5: Ændring af adgangstilladelser

For at give offentlig adgang til din server skal du ændre adgangstilladelserne til Apache-tjenesten i /etc/httpd/conf/httpd.conf-konfigurationsfilen. Standardkonfigurationen nægter adgang. Hvis du forsømmer dette trin, kan du støde på HTTP 403-fejl, når folk forsøger at få adgang til dit websted.

sudo nano /etc/httpd/conf/httpd.conf

Tilføj følgende blok til din fil, og sørg for, at du justerer rodmappen, så den matcher din egen.

<Directory /var/www/example.com/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

For at gemme disse ændringer skal du bruge tastaturkombinationen CTRL+O og afslutte teksteditoren med CTRL+X.

Trin 6: Aktiver den virtuelle vært for Apache på CentOS Stream

For at konfigurere den virtuelle vært skal du aktivere den som det sidste trin. Opret et symbolsk link fra biblioteket med websteder til rådighed til webstedsaktiveret bibliotek ved hjælp af kommandoen nedenfor:

sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/

Du skal genstarte Apache-tjenesten for at fuldføre aktiveringsprocessen.

sudo systemctl restart httpd

Når du har genstartet Apache-tjenesten, skal du åbne din webbrowser og navigere til "HTTP://example_domain." Hvis du ikke har registreret et domæne, kan du få adgang til dit websted ved hjælp af IP-adressen (lokal eller ekstern). Hvis du sætter alt op korrekt, vil den landingsside, du oprettede i index.html-filen, hilse på dig.

Yderligere kommandoer og tips

Sikre mapper og filer

Indstilling af sikre tilladelser

Brug af sikre tilladelser til filer og mapper i Apache på CentOS er afgørende. Ofte gives overdrevne tilladelser, f.eks. fuld offentlig adgang. For at forhindre sikkerhedsrisici anbefales det at begrænse tilladelser. Til mapper, brug chmod 755 og for filer, chmod 644. Nedenfor er kommandoerne til indstilling af disse tilladelser. Husk, at nogle applikationer kan kræve andre tilladelser, f.eks 777 til phpBB.

  • For mapper:
sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
  • For filer:
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

Disse kommandoer vil erstatte /var/www/example.com/ med den passende mappesti. Dette trin garanterer ikke fuldstændig sikkerhed, men reducerer risiciene betydeligt ved at forhindre offentlig adgang til vigtige filer.

Sikker Apache med Let's Encrypt SSL

Installation af Let's Encrypt SSL-certifikat

Det er nødvendigt at sikre din Apache-server med et SSL-certifikat for sikre klient-server-forbindelser. Let's Encrypt giver et gratis, automatiseret SSL-certifikat. Først skal du sikre dig, at CRB-lageret er aktiveret, og at EPEL-lageret er installeret. Installationsprocessen varierer lidt mellem CentOS Stream 9 og 8.

Til CentOS Stream 9:
  • Aktiver CRB:
sudo dnf config-manager --set-enabled crb
  • Installer EPEL repository:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

Installer derefter mod_ssl og Snap:

sudo dnf install mod_ssl

Aktiver EPEL på din CentOS Stream-distribution, og installer derefter Snap.

sudo dnf install snapd -y

Efter installationen skal du sørge for at aktivere Snap og ved systemstart med det samme.

sudo systemctl enable snapd --now

Det næste trin er at installere snap-kernen, som tager sig af alle de afhængigheder, der er nødvendige for, at snap-pakker kan køre.

sudo snap install core

Opret et symbolsk link til snapd-mappen.

sudo ln -s /var/lib/snapd/snap /snap

Brug følgende terminalkommando til at installere Certbot snap-pakken.

sudo snap install --classic certbot

Til sidst skal du oprette endnu et symbolsk link til Certbot snap-pakken.

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Kør Certbot til Apache

Kør følgende kommando i din terminal for at generere dit SSL-certifikat ved hjælp af Certbot.

sudo certbot --dry-run --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

For dem, der er nye til Let's Encrypt, kan du søge mere information om forkortelsen i kommandoen.

  • Indstillingen "–dry-run" giver dig mulighed for at udføre en testkørsel af certifikatgenereringsprocessen uden at ændre systemet. Denne mulighed er værdifuld til test.
  • Muligheden "–apache" er at generere et certifikat til en Apache-webserver.
  • Muligheden "–agree-tos" giver dig mulighed for at acceptere servicevilkårene fra Let's Encrypt, certifikatmyndigheden, der leverer SSL-certifikatet.
  • "–redirect"-indstillingen omdirigerer automatisk al HTTP-trafik til HTTPS.
  • Indstillingen "–hsts" aktiverer HTTP Strict Transport Security (HSTS). Denne sikkerhedsfunktion hjælper med at beskytte mod protokolnedgraderingsangreb og cookiekapring ved kun at bede browsere om at få adgang til dit websted via en sikker HTTPS-forbindelse.
  • "–staple-ocsp"-indstillingen aktiverer OCSP-hæftning (Online Certificate Status Protocol), som bekræfter et SSL-certifikats tilbagekaldelsesstatus uden at kontakte certifikatmyndigheden.
  • Brug muligheden "–email" til at angive den e-mailadresse, du vil knytte til certifikatet.
  • Indstillingen "-d" angiver det domænenavn, som du vil generere certifikatet for. I dette eksempel er domænenavnet "www.example.com".

Alternativt kan du bruge følgende kommando og følge trin-for-trin-vejledningen for en mere tilgængelig oplevelse.

sudo certbot certonly --apache

Ved at udføre kommandoen med de nævnte parametre, instruerer du certbot til at oprette et SSL-certifikat for dit domæne "www.example.com", mens du også inkluderer de nødvendige sikkerhedsfunktioner som en forceret HTTPS 301-omdirigering, Strict-Transport-Security-header og OCSP-hæftning. Det er vigtigt at bemærke, at du skal erstatte e-mailadressen i kommandoen med din egen, og også sørge for at erstatte domænenavnet "www.example.com" med dit ønskede domænenavn.

Konfiguration af SSL på Apache

Når du har fået SSL-certifikatet, skal du konfigurere din Apache-server til at bruge det. Rediger ssl.conf fil og tilføj følgende linjer, og erstat "example.com" med dit domæne:

sudo nano /etc/httpd/conf.d/ssl.conf

Tilføj følgende linjer i konfigurationsfilen: Erstat "example.com" med dit domænenavn.

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

Gem ændringerne og genstart Apache, så konfigurationen træder i kraft.

sudo systemctl restart httpd 

Denne opsætning sikrer krypteret, sikker kommunikation mellem browsere og din hjemmeside.

Automatisering af certifikatfornyelse

For at holde SSL-certifikatet opdateret skal du konfigurere et cron-job til automatisk fornyelse. Test fornyelsesprocessen med et tørløb:

sudo certbot renew --dry-run

Tjek timerne ved hjælp af systemctl list-timers kommandoen og bekræft, at "snap.certbot.renew.timer" er til stede.

systemctl list-timers snap.certbot.renew.timer

Brug kommandoen "systemctl list-timers -all" for at se aktive og inaktive timere på dit system. Denne kommando giver en oversigt over alle timere, inklusive "snap.certbot.renew.timer." "snap.certbot.renew.timer" sikrer automatisk kontrol og fornyelse af dit certifikat inden udløb. Dermed fjerner du bekymringer vedrørende fornyelsesprocessen.

systemctl list-timers --all

Apache HTTPD Management

Med Apache succesfuldt opsat på din server, er her nogle vigtige punkter at huske for effektiv administration.

Apache-serverlogfiler

Apache-serverlogfiler gemmes i mappen på /var/log/httpd/. Standardfilnavnene for adgangs- og fejllogfilerne er henholdsvis access.log og error.log. Det er dog muligt at ændre disse navne i den virtuelle værtskonfigurationsfil.

Her er et eksempel på ændring af Apache-serverlogfilerne i den virtuelle værtskonfigurationsfil.

<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/example.com
    
    # Change access log to custom-access.log
    CustomLog /var/log/httpd/custom-access.log combined
    
    # Change error log to custom-error.log
    ErrorLog /var/log/httpd/custom-error.log
</VirtualHost>

Dette eksempel ændrer adgangs- og fejllogfilerne til henholdsvis custom-access.log og custom-error.log. Du kan ændre navnene på logfilerne til det, du foretrækker, og opdatere den tilsvarende sti i den virtuelle værtskonfigurationsfil.

Apache kommandoer

Her er nogle af de ofte brugte kommandoer, når du administrerer Apache:

Stop Apache webserver:

sudo systemctl stop httpd

Start Apache webserver:

sudo systemctl start httpd

Genstart Apache webserver:

sudo systemctl restart httpd

Genindlæs Apache-webserver:

sudo systemctl reload httpd

Deaktiver Apache ved serverstart:

sudo systemctl disable httpd

Aktiver Apache ved serverstart:

sudo systemctl enable httpd

Sådan opdateres Apache HTTPD

For at holde Apache opdateret skal du køre den kommando, du typisk bruger til at kontrollere, om dit system er opdateret.

sudo dnf update --refresh

Det er vigtigt at lave sikkerhedskopier eller oprette billeder af dit system, før du udfører nogen opgraderinger, da der nogle gange kan opstå fejl. Den følgende kommando vil opdatere alle systempakker, inklusive Apache, og bede dig om at opgradere.

Sådan fjerner du Apache HTTPD

For at afinstallere Apache fra dit system skal du bruge følgende kommando.

sudo systemctl disable httpd --now

Brug nu følgende kommando til at fjerne Apache helt.

sudo dnf remove httpd

Tilbageværende filer kan forblive i /etc/httpd-hovedmappen, så lad os slette den mappe.

sudo rm -R /etc/httpd/

Konklusion

Med Apache HTTP Server og Let's Encrypt opsat på dit CentOS Stream-system, vil din hjemmeside være både robust og sikker. Regelmæssig opdatering af Apache og fornyelse af dit Let's Encrypt SSL-certifikat vil hjælpe med at opretholde optimal sikkerhed og ydeevne. Nyd den pålidelighed og sikkerhed, som Apache HTTP Server og Let's Encrypt bringer til dit webhostingmiljø.

Joshua James
Følg mig
Seneste indlæg af Joshua James (se alt)

Skriv en kommentar