Hoe Apache HTTPD te installeren op CentOS Stream 9

Apache HTTP Server (httpd) is een van de meest populaire en robuuste webservers die beschikbaar zijn, bekend om zijn flexibiliteit, prestaties en brede scala aan functies. Het wordt veel gebruikt voor het hosten van websites en webapplicaties. Door Apache op CentOS Stream 9 in te stellen, kunt u de krachtige mogelijkheden ervan benutten voor uw webhostingbehoeften. Bovendien zorgt het beveiligen van uw website met een gratis SSL-certificaat van Let's Encrypt ervoor dat uw site gecodeerd en betrouwbaar is.

Om Apache HTTP Server op CentOS Stream 9 te installeren en een Let's Encrypt SSL-certificaat in te stellen, volgt u de stappen die in deze handleiding worden beschreven. Dit zorgt voor een veilige en efficiënte webserverconfiguratie.

Zorgen voor een volledig bijgewerkt CentOS Stream-systeem vóór de installatie van Apache

Voordat we doorgaan met de Apache-installatie op uw CentOS Stream-machine, moeten we verifiëren dat ons systeem volledig up-to-date is. Dit is meer dan alleen een voorzorgsmaatregel. Het updaten van uw systeem helpt compatibiliteitsproblemen te voorkomen en verbetert de stabiliteit, beveiliging en prestaties aanzienlijk.

Om dit in gang te zetten, voert u de volgende opdracht uit in uw terminal:

sudo dnf upgrade --refresh

Met deze opdracht wordt het updatemechanisme geactiveerd, waarbij de nieuwste software-updates en beveiligingspatches voor uw systeem worden aangeschaft en geïnstalleerd. Het is van cruciaal belang om het updateproces volledig te laten voltooien voordat u doorgaat naar de Apache-installatie. Dit zorgt ervoor dat uw systeem in topconditie verkeert, optimaal is geconfigureerd en voorbereid is om Apache uit te voeren zonder dat u tegen problemen of compatibiliteitsproblemen aanloopt.

Installeer Apache HTTPD via DNF-opdracht

De tweede stap is het installeren van Apache, of HTTPD, op uw CentOS Stream-systeem. Dit is een eenvoudig proces, dankzij de krachtige DNF-pakketbeheerder. De DNF- of Dandified Yum-pakketbeheerder vereenvoudigt het installeren, bijwerken en beheren van softwarepakketten.

Start de installatie van Apache (HTTPD) door de volgende opdracht in uw terminal uit te voeren:

sudo dnf install httpd

Deze opdracht initieert het installatiemechanisme en haalt en installeert alle benodigde componenten zodat Apache (HTTPD) op uw systeem kan worden uitgevoerd. Het proces zou binnen een paar minuten moeten eindigen. Daarna heeft u Apache (HTTPD) volledig geïnstalleerd en klaar voor gebruik.

Activeren en configureren van Apache HTTPD om te draaien bij het opstarten van het systeem

Na de succesvolle installatie van Apache (HTTPD) op uw CentOS Stream-systeem, is de volgende belangrijke actie het activeren van de service en het configureren ervan om automatisch te starten bij het opstarten van het systeem. Apache (HTTPD) is altijd actief en bereid om webverzoeken te verwerken wanneer uw systeem opstart.

Als de Apache-service (HTTPD) niet actief is of standaard is ingesteld om te worden uitgevoerd, gebruikt u deze opdrachten in uw terminal om de service te starten en ervoor te zorgen dat deze wordt uitgevoerd tijdens het opstarten van het systeem:

sudo systemctl start httpd
sudo systemctl enable httpd

Het eerste commando, sudo systemctl start httpd, start de Apache (HTTPD) service, terwijl het tweede commando, sudo systemctl enable httpd, de service zo instelt dat deze automatisch wordt uitgevoerd bij het opstarten van het systeem. Door deze twee opdrachten te implementeren, garandeert u dat Apache (HTTPD) voortdurend toegankelijk en actief is, klaar om tegemoet te komen aan webverzoeken telkens wanneer uw systeem wordt ingeschakeld.

Als alternatief kunt u de twee voorgaande stappen samenvatten in één enkele opdracht:

sudo systemctl enable httpd --now

De optie –now in de opdracht sudo systemctl enable httpd –now start tegelijkertijd de Apache (HTTPD) -service en configureert deze zodat deze automatisch wordt gestart bij het opstarten van het systeem. Deze enkele opdracht verenigt de twee afzonderlijke opdrachten uit de voorgaande stappen, waardoor het proces gestroomlijnder en efficiënter wordt.

Controleer Apache HTTPD-servicestatus

Ten slotte moeten we de succesvolle implementatie en werking van Apache (HTTPD) verifiëren door de volgende systemctl-opdracht te gebruiken:

systemctl status httpd

Met deze opdracht krijgt u de realtime status van de Apache-service (HTTPD) te zien, inclusief eventuele fouten of berichten die mogelijk zijn opgetreden. Door de status van de service onder de loep te nemen, kunt u bevestigen dat Apache (HTTPD) naadloos werkt.

Configureer FirewallD-regels

Nadat u Apache (HTTPD) op CentOS Stream hebt geïnstalleerd, merkt u mogelijk dat de firewall geen vooraf geconfigureerde regels bevat voor standaardpoorten 80 en 443. U moet deze firewallregels configureren voordat u verder gaat om de beveiliging van uw webapplicatie te verbeteren.

Stel de firewallregels in met behulp van de firewall-cmd-tool, het standaard hulpprogramma voor firewallbeheer van CentOS Stream. De regels die u moet configureren, variëren afhankelijk van de poorten die u wilt gebruiken. In de volgende stappen vermelden we echter alle kritische opties.

Poorten 80 en 443 openen

We zullen de eerste twee opdrachten uitvoeren om poort 80 en 443 te openen. Deze poorten verwerken respectievelijk inkomend HTTP- en HTTPS-verkeer.

Om poort 80 of HTTP te openen, voert u de volgende opdracht uit:

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

Open vervolgens poort 443, of HTTPS, met de volgende opdracht:

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

Controleer firewallwijzigingen

Nadat we hebben aangegeven welke poorten moeten worden geopend, moeten we de firewall opdracht geven deze wijzigingen door te voeren. Doe dit door de firewallregels opnieuw te laden met behulp van de onderstaande opdracht:

sudo firewall-cmd --reload

De implicaties begrijpen

Het is van het grootste belang dat u een goed begrip heeft van de veiligheidsimplicaties die gepaard gaan met het openen van poorten op uw systeem. Door selectief alleen de noodzakelijke poorten te openen, versterkt u de verdediging van uw webapplicatie tegen ongeoorloofde toegang en potentiële veiligheidsrisico's. Dit onderstreept waarom het van cruciaal belang is om de firewallregels voor uw Apache (HTTPD)-installatie op CentOS Stream correct te configureren.

Apache HTTPD-toegang verifiëren

Nadat u Firewalld zorgvuldig hebt geconfigureerd, zorgt u ervoor dat u via uw webbrowser toegang heeft tot de Apache-startpagina (HTTPD). Start uw favoriete webbrowser en ga naar http://localhost of http://your_server_ip.

Om toegang te krijgen via het IP-adres van uw server:

http://your_server_ip

Als alternatief kunt u toegang krijgen via localhost:

http://localhost

Wanneer u alles nauwkeurig configureert, wordt u begroet door de standaard landingspagina van Apache (HTTPD). Op deze pagina wordt een bericht weergegeven waarin wordt bevestigd dat de server naar verwachting werkt. De pagina zal lijken op:

Creëer en configureer een virtuele host

In dit gedeelte wordt dieper ingegaan op het praktische aspect van het maken van een virtuele host met behulp van Apache (HTTPD), een flexibele webserver die bekend staat om zijn mogelijkheid om meerdere domeinen op één server te hosten. Dit hulpprogramma is analoog aan het kenmerk “serverblokken” van Nginx. In de daaropvolgende tutorial illustreren we hoe je een virtuele host kunt formuleren voor een bepaald domein, weergegeven als 'example-domain.com'. Uiteraard vervangt u dit voorbeelddomein door uw specifieke domeinnaam.

Het creëren van virtuele hosts vergemakkelijkt het onafhankelijke beheer van configuraties voor elk domein. Dit biedt controle over verschillende facetten van uw webserveromgeving, inclusief beveiliging, prestaties en aangepaste instellingen. Dit kan met name voordelig zijn als u meerdere websites op één server wilt hosten of afzonderlijke instellingen voor verschillende delen van uw website wilt onderhouden. Met Apache (HTTPD) kunt u moeiteloos virtuele hosts bedenken die aan deze eisen voldoen.

Mappen maken en configureren

Als u begint met het instellen van uw virtuele host, maakt u een nieuwe map aan die als hoofdmap voor uw virtuele host dient. De naam van deze map komt doorgaans overeen met uw domeinnaam.

Als uw domeinnaam bijvoorbeeld ‘example.com’ is, genereert u een nieuwe map met de opdracht:

sudo mkdir /var/www/example.com

Deze opdracht vereist de vervanging van “example.com” door uw domeinnaam. De map bevat dus bestanden en middelen die verband houden met uw virtuele hosts, inclusief HTML-bestanden, afbeeldingen, scripts en andere bronnen.

Het opzetten van individuele mappen voor elke virtuele host vergemakkelijkt een duidelijke scheiding van zorgen, wat van belang is in de context van beveiliging en probleemoplossing.

Voor de nieuwe map zijn mogelijk het juiste eigendom en de juiste machtigingen vereist om Apache-toegang (HTTPD) toe te staan. De volgende opdrachten stellen het juiste eigendom en de juiste machtigingen in:

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

Nu de nieuwe map klaar is, kunnen we uw virtuele host instellen.

Een index.html-bestand maken

Een teksteditor genereert een index.html-bestand voor uw virtuele host. Voor onze zelfstudie gebruiken we de nano-teksteditor, maar u kunt elke gewenste teksteditor kiezen.

Voer de volgende opdracht uit om het index.html-bestand te maken:

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

Begin in de teksteditor met het maken van de inhoud voor uw index.html-bestand. Dit bestand dient doorgaans als eerste contactpunt voor een gebruiker die uw website bezoekt.

Hier is een eenvoudig voorbeeld:

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

Nadat u de inhoud van uw index.html-bestand hebt voltooid, slaat u het bestand op en sluit u de teksteditor af. In het geval van nano wordt dit bereikt door op Ctrl + X, Y en Enter te drukken.

Virtuele hostmappen configureren

Het garanderen van de juiste mapconfiguratie voor de Apache-webserver garandeert een naadloze en georganiseerde configuratie. Concreet worden de mappen “sites-available” en “sites-enabled” gebruikt. Deze configuratie weerspiegelt de configuratie die in Nginx is aangenomen en bevordert georganiseerde en toegankelijke configuraties.

Gebruik de volgende opdracht om deze mappen te maken:

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

Geef Apache vervolgens de opdracht om te zoeken naar virtuele hostbestanden in de map “/etc/httpd/sites-available”:

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

Voeg in het geopende configuratiebestand aan het einde de regel "IncludeOptional sites-enabled/*.conf" toe. Deze regel instrueert Apache om alle virtuele hostconfiguratiebestanden op te nemen in de map “sites-enabled”.

IncludeOptional sites-enabled/*.conf

Optioneel zou je misschien de opmerking “IncludeOptional conf.d/*.conf” willen plaatsen, waardoor de standaardmap waarin Apache naar virtuele hostbestanden zoekt, wordt uitgeschakeld. Dit helpt mogelijke verwarring te voorkomen.

Voorbeeld:

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

Om het bestand op te slaan en af ​​te sluiten, gebruikt u de toetsenbordcombinatie CTRL + O, gevolgd door CTRL + X.

Maak het virtuele hostconfiguratiebestand

Vervolgens zullen we met behulp van uw teksteditor een virtueel hostconfiguratiebestand maken op /etc/httpd/sites-available/example.com.conf.

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

Vul de tijdelijke aanduiding-informatie in het volgende configuratieblok in met uw Servernaam, ServerAlias ​​en Document Root voordat u deze kopieert naar het configuratiebestand van de virtuele host op /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>

Pas de serverrichtlijnen aan uw specifieke vereisten aan.

Stap 5: Toegangsrechten wijzigen

Om openbare toegang tot uw server te verlenen, wijzigt u de toegangsrechten voor de Apache-service in het configuratiebestand /etc/httpd/conf/httpd.conf. De standaardconfiguratie weigert toegang. Als u deze stap negeert, kunt u HTTP 403-fouten tegenkomen wanneer mensen toegang proberen te krijgen tot uw website.

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

Voeg het volgende blok toe aan uw bestand en zorg ervoor dat u de hoofdmap aanpast zodat deze overeenkomt met uw eigen map.

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

Om deze wijzigingen op te slaan, gebruikt u de toetsenbordcombinatie CTRL+O en sluit u de teksteditor af met CTRL+X.

Stap 6: Schakel de virtuele host voor Apache in op CentOS Stream

Om de virtuele host in te stellen, moet u deze als laatste stap activeren. Maak een symbolische link van de voor sites beschikbare map naar de voor sites geschikte map met behulp van de onderstaande opdracht:

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

U moet de Apache-service opnieuw opstarten om het activeringsproces te voltooien.

sudo systemctl restart httpd

Nadat u de Apache-service opnieuw hebt opgestart, opent u uw webbrowser en navigeert u naar 'HTTP://example_domain'. Als u geen domein heeft geregistreerd, kunt u toegang krijgen tot uw website via het IP-adres (lokaal of extern). Als u alles correct heeft ingesteld, wordt u begroet door de landingspagina die u in het index.html-bestand hebt gemaakt.

Aanvullende opdrachten en tips

Beveiligde mappen en bestanden

Veilige machtigingen instellen

Het gebruik van veilige machtigingen voor bestanden en mappen in Apache op CentOS is cruciaal. Vaak worden er buitensporige machtigingen verleend, zoals volledige openbare toegang. Om veiligheidsrisico's te voorkomen, wordt aanbevolen om de machtigingen te beperken. Gebruik voor mappen chmod 755 en voor bestanden, chmod 644. Hieronder staan ​​de opdrachten voor het instellen van deze machtigingen. Houd er rekening mee dat voor sommige toepassingen mogelijk andere machtigingen nodig zijn, zoals 777 voor phpBB.

  • Voor mappen:
sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
  • Voor bestanden:
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

Deze opdrachten zullen vervangen /var/www/example.com/ met het juiste mappad. Deze stap garandeert geen volledige veiligheid, maar vermindert de risico's aanzienlijk door openbare toegang tot cruciale bestanden te voorkomen.

Beveilig Apache met Let's Encrypt SSL

Let's Encrypt SSL-certificaat installeren

Het beveiligen van uw Apache-server met een SSL-certificaat is noodzakelijk voor veilige client-serververbindingen. Let's Encrypt biedt een gratis, geautomatiseerd SSL-certificaat. Zorg er eerst voor dat de CRB-repository is ingeschakeld en dat de EPEL-repository is geïnstalleerd. Het installatieproces varieert enigszins tussen CentOS Stream 9 en 8.

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

Installeer vervolgens mod_ssl en snap:

sudo dnf install mod_ssl

Activeer EPEL op uw CentOS Stream-distributie en installeer vervolgens Snap.

sudo dnf install snapd -y

Zorg ervoor dat u na de installatie Snap inschakelt en het systeem onmiddellijk opstart.

sudo systemctl enable snapd --now

De volgende stap is het installeren van de snap-core, die zorgt voor alle afhankelijkheden die nodig zijn om snap-pakketten uit te voeren.

sudo snap install core

Maak een symbolische link voor de snapd-map.

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

Gebruik de volgende terminalopdracht om het Certbot-snappakket te installeren.

sudo snap install --classic certbot

Maak ten slotte nog een symbolische link voor het Certbot-snappakket.

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

Voer Certbot uit voor Apache

Voer de volgende opdracht uit in uw terminal om uw SSL-certificaat te genereren met Certbot.

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

Voor degenen die nieuw zijn bij Let's Encrypt: u kunt meer informatie zoeken over de afkorting in de opdracht.

  • Met de “–dry-run”-optie kunt u een testrun uitvoeren van het proces voor het genereren van certificaten zonder het systeem te wijzigen. Deze optie is waardevol voor testen.
  • De “–apache” optie is om een ​​certificaat te genereren voor een Apache-webserver.
  • Met de “–agree-tos”-optie kunt u de servicevoorwaarden van Let's Encrypt accepteren, de certificeringsinstantie die het SSL-certificaat levert.
  • De “–redirect” optie leidt automatisch al het HTTP-verkeer om naar HTTPS.
  • De optie “–hsts” schakelt HTTP Strict Transport Security (HSTS) in. Deze beveiligingsfunctie helpt beschermen tegen aanvallen van protocoldowngrades en het kapen van cookies door browsers te vertellen dat ze uw website alleen mogen openen via een beveiligde HTTPS-verbinding.
  • De optie “–staple-ocsp” maakt Online Certificate Status Protocol (OCSP)-nieten mogelijk, waarmee de intrekkingsstatus van een SSL-certificaat wordt geverifieerd zonder contact op te nemen met de certificeringsinstantie.
  • Gebruik de optie “–email” om het e-mailadres op te geven dat u aan het certificaat wilt koppelen.
  • De “-d” optie specificeert de domeinnaam waarvoor u het certificaat gaat genereren. In dit voorbeeld is de domeinnaam ‘www.example.com’.

U kunt ook de volgende opdracht gebruiken en de stapsgewijze aanwijzingen volgen voor een meer toegankelijke ervaring.

sudo certbot certonly --apache

Door de opdracht met de genoemde parameters uit te voeren, geeft u certbot opdracht om een ​​SSL-certificaat voor uw domein “www.example.com” te maken, terwijl u ook de noodzakelijke beveiligingsfuncties toevoegt, zoals een gedwongen HTTPS 301-omleiding, Strict-Transport-Security-header en OCSP-nieten. Het is belangrijk op te merken dat u het e-mailadres in de opdracht moet vervangen door uw eigen e-mailadres, en zorg er ook voor dat u de domeinnaam “www.example.com” vervangt door de gewenste domeinnaam.

SSL configureren op Apache

Nadat u het SSL-certificaat heeft verkregen, configureert u uw Apache-server om het te gebruiken. Bewerk de ssl.conf bestand en voeg de volgende regels toe, waarbij u “example.com” vervangt door uw domein:

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

Voeg in het configuratiebestand de volgende regels toe: vervang “example.com” door uw domeinnaam.

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

Sla de wijzigingen op en start Apache opnieuw op, zodat de configuratie van kracht wordt.

sudo systemctl restart httpd 

Deze opstelling zorgt voor gecodeerde, veilige communicatie tussen browsers en uw website.

Automatisering van certificaatvernieuwing

Om het SSL-certificaat up-to-date te houden, stelt u een cronjob in voor automatische verlenging. Test het vernieuwingsproces met een proefrun:

sudo certbot renew --dry-run

Controleer de timers met behulp van de opdracht systemctl list-timers en bevestig dat “snap.certbot.renew.timer” aanwezig is.

systemctl list-timers snap.certbot.renew.timer

Gebruik het commando “systemctl list-timers –all” om actieve en inactieve timers op uw systeem te bekijken. Deze opdracht geeft een overzicht van alle timers, inclusief de “snap.certbot.renew.timer.” De “snap.certbot.renew.timer” zorgt voor de automatische controle en verlenging van uw certificaat vóór de vervaldatum. Zo elimineert u zorgen over het verlengingsproces.

systemctl list-timers --all

Apache HTTPD-beheer

Nu Apache succesvol op uw server is geïnstalleerd, volgen hier enkele essentiële punten die u moet onthouden voor effectief beheer.

Apache-serverlogboeken

Apache-serverlogboeken worden opgeslagen in de map /var/log/httpd/. De standaardbestandsnamen voor de toegangs- en foutenlogboeken zijn respectievelijk access.log en error.log. Het is echter mogelijk om deze namen in het configuratiebestand van de virtuele host te wijzigen.

Hier is een voorbeeld van het wijzigen van de Apache-serverlogboeken in het configuratiebestand van de virtuele host.

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

In dit voorbeeld worden de toegangs- en foutenlogboeken gewijzigd in respectievelijk custom-access.log en custom-error.log. U kunt de namen van de logbestanden naar wens wijzigen en het overeenkomstige pad in het configuratiebestand van de virtuele host bijwerken.

Apache-opdrachten

Hier zijn enkele van de veelgebruikte opdrachten bij het beheren van Apache:

Apache-webserver stoppen:

sudo systemctl stop httpd

Apache-webserver starten:

sudo systemctl start httpd

Start de Apache-webserver opnieuw:

sudo systemctl restart httpd

Apache-webserver opnieuw laden:

sudo systemctl reload httpd

Schakel Apache uit bij het opstarten van de server:

sudo systemctl disable httpd

Schakel Apache in bij het opstarten van de server:

sudo systemctl enable httpd

Hoe Apache HTTPD te updaten

Om Apache up-to-date te houden, voert u de opdracht uit die u doorgaans gebruikt om te controleren of uw systeem up-to-date is.

sudo dnf update --refresh

Het is belangrijk om back-ups te maken of afbeeldingen van uw systeem te maken voordat u upgrades uitvoert, omdat er soms fouten kunnen optreden. Met de volgende opdracht worden alle systeempakketten vernieuwd, inclusief Apache, en wordt u gevraagd een upgrade uit te voeren.

Hoe Apache HTTPD te verwijderen

Gebruik de volgende opdracht om Apache van uw systeem te verwijderen.

sudo systemctl disable httpd --now

Gebruik nu de volgende opdracht om Apache helemaal te verwijderen.

sudo dnf remove httpd

Overgebleven bestanden kunnen in de hoofdmap /etc/httpd blijven staan, dus laten we die map wissen.

sudo rm -R /etc/httpd/

Conclusie

Als Apache HTTP Server en Let's Encrypt succesvol zijn geïnstalleerd op uw CentOS Stream-systeem, zal uw website zowel robuust als veilig zijn. Door Apache regelmatig bij te werken en uw Let's Encrypt SSL-certificaat te vernieuwen, blijven optimale beveiliging en prestaties behouden. Geniet van de betrouwbaarheid en veiligheid die Apache HTTP Server en Let's Encrypt bieden voor uw webhostingomgeving.

Joshua James
Volg mij
Laatste berichten van Joshua James (alles zien)

Plaats een reactie