Zaštitite Apache s Lets Encrypt SSL certifikatom na CentOS 8


Osiguranje vašeg web-poslužitelja uvijek je jedan od ključnih čimbenika koje biste trebali uzeti u obzir prije nego što pokrenete svoju web-stranicu. Sigurnosni certifikat ključan je za osiguravanje prometa koji se šalje s web-preglednika na web-poslužitelje i na taj način će potaknuti korisnike da razmjenjuju podatke s vašim web-mjestom uz potpunu spoznaju da je poslani promet siguran.

U većini slučajeva, sigurnosni certifikati se plaćaju i obnavljaju godišnje. Certifikat Let’s Encrypt besplatan je, otvoren i automatizirani certifikat koji možete koristiti za šifriranje svoje web-lokacije. Certifikat istječe svakih 90 dana i automatski se obnavlja bez ikakvih troškova.

Preporučeno za čitanje: Kako zaštititi Nginx uz Let’s Encrypt na CentOS 8

U ovom članku pokazat ćemo vam kako možete instalirati Let's Encrypt Certificate s Certbotom za Apache web poslužitelj i kasnije konfigurirati certifikat za automatsku obnovu na CentOS 8.

Preduvjeti

Prije nego što počnete, provjerite imate li sljedeće:

1. Instanca CentOS 8 poslužitelja s Apache HTTP web poslužiteljem instaliranim i pokrenutim. Možete potvrditi da je vaš apache web poslužitelj pokrenut i radi.

sudo dnf install httpd
sudo systemctl status httpd

2. Potpuno kvalificirani naziv domene (FQDN) koji upućuje na javnu IP adresu vašeg web poslužitelja na vašem DNS davatelju usluge web hostinga. Za ovaj vodič koristit ćemo linuxtechwhiz.info koji upućuje na IP poslužitelja 34.67.63.136.

Korak 1. Instalirajte Certbot u CentOS 8

Certbot je klijent koji automatizira instalaciju sigurnosnog certifikata. Dohvaća certifikat od Let's Encrypt Authority i postavlja ga na vaš web-poslužitelj bez puno muke.

Certbot je potpuno besplatan i omogućit će vam instalaciju certifikata na interaktivan način generiranjem uputa na temelju konfiguracije vašeg web poslužitelja.

Prije preuzimanja certbota prvo instalirajte pakete koji su potrebni za konfiguraciju šifrirane veze.

Započet ćemo instaliranjem EPEL repozitorija koji pruža visokokvalitetne dodatne pakete za sustave temeljene na RHEL-u:

sudo dnf install epel-release

Zatim instalirajte pakete mod_ssl i openssl.

sudo dnf install mod_ssl openssl

Nakon što su sve ovisnosti instalirane, instalirajte Certbot i Apache modul za Certbot.

sudo dnf install certbot python3-certbot-apache

Naredba instalira Certbot, Apache modul za Certbot i druge ovisnosti.

Korak 2: Stvorite Apache Virtual Host

Sljedeći korak bit će stvaranje datoteke virtualnog hosta za našu domenu – linuxtechwhiz.info. Započnite stvaranjem korijena dokumenta gdje ćete smjestiti svoje HTML datoteke.

sudo mkdir /var/www/linuxtechwhiz.info.conf

Napravite testnu datoteku index.html kao što je prikazano.

sudo echo “<h1>Welcome to Apache HTTP server</h1>” > /var/www/linuxtechwhiz.info/index.html

Zatim stvorite datoteku virtualnog hosta kao što je prikazano.

sudo vim /etc/httpd/conf.d/linuxtechwhiz.info

Dodajte konfiguraciju u nastavku.

<VirtualHost *:443>
  ServerName linuxtechwhiz.info
  ServerAlias www.linuxtechwhiz.info
  DocumentRoot /var/www/linuxtechwhiz.info/
  <Directory /var/www/linuxtechwhiz.info/>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
  ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
  CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
</VirtualHost>

Spremi i izađi.

Dodijelite dopuštenja korijenu dokumenta kao što je prikazano.

sudo chown -R apache:apache /var/www/linuxtechwhiz.info

Da bi promjene stupile na snagu, ponovno pokrenite uslugu Apache.

sudo systemctl restart httpd

Korak 3: Instalirajte Let’s Encrypt SSL certifikat na CentOS 8

Sada pokrenite certbot kao što je prikazano kako biste započeli instalaciju Let’s Encrypt certifikata.

sudo certbot --apache -d domain.com

U našem slučaju to će biti:

sudo certbot --apache -d linuxtechwhiz.info

Naredba će vas provesti kroz niz upita kako biste mogli konfigurirati Lets Encrypt za svoju domenu. Obavezno navedite svoju adresu e-pošte, prihvatite Uvjete usluge i navedite nazive domena koje želite koristiti HTTPS protokol koji je šifrirana verzija HTTP-a.

Ako je sve prošlo dobro, trebali biste dobiti poruku čestitke na kraju koja vas obavještava da je vaša stranica osigurana pomoću Let’s Encrypt certifikata. Valjanost vašeg certifikata također će biti prikazana – što je obično nakon 90 dana nakon implementacije.

Sada se vratite na svoju datoteku virtualnog hosta i dodajte sljedeće retke konfiguracije.

SSLEngine On
 SSLCertificateFile    /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
 SSLCertificateKeyFile  /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem

Spremi i izađi.

Konačna konfiguracija Apache virtualnog hosta izgledat će otprilike ovako:

<VirtualHost *:443>
  ServerName linuxtechwhiz.info
  ServerAlias www.linuxtechwhiz.info
  DocumentRoot /var/www/linuxtechwhiz.info/
  <Directory /var/www/linuxtechwhiz.info/>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
  ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
  CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined

 SSLEngine On
 SSLCertificateFile    /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
 SSLCertificateKeyFile  /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
</VirtualHost>

Ponovno pokrenite Apache.

sudo systemctl restart httpd

Korak 4: Provjera Let’s Encrypt SSL certifikata

Kako biste provjerili radi li sve, pokrenite preglednik i posjetite IP adresu poslužitelja. Sada biste trebali vidjeti simbol lokota na početku URL-a.

Da biste saznali više detalja, kliknite na simbol lokota i kliknite na opciju 'Certifikat' na padajućem izborniku koji se pojavi.

Pojedinosti certifikata bit će prikazane u sljedećem skočnom prozoru.

Također, možete testirati svoj poslužitelj na https://www.ssllabs.com/ssltest/ i vaša bi stranica trebala dobiti ocjenu 'A' kao što je prikazano.

Korak 5: Automatski obnovi Let’s Encrypt SSL certifikat

Let’s Encrypt vrijedi samo 90 dana. Obično se postupak obnove provodi paketom certbot koji dodaje skriptu obnove u direktorij /etc/cron.d. Skripta se pokreće dva puta dnevno i automatski će obnoviti svaki certifikat unutar 30 dana od isteka.

Da biste testirali postupak automatske obnove, provedite probni test s certbotom.

sudo /usr/local/bin/certbot-auto renew --dry-run

Ako nema pogrešaka, to znači da ste spremni.

Ovo nas dovodi do kraja ovog vodiča. U ovom smo vodiču pokazali kako možete koristiti certbot za instalaciju i konfiguraciju Let’s Encrypt certifikata na web poslužitelju Apache koji radi na sustavu CentOS 8.