Kako stvoriti lokalni samopotpisani SSL certifikat na CentOS 8


SSL (Secure Socket Layer) i njegova poboljšana verzija, TLS (Transport Socket Layer), sigurnosni su protokoli koji se koriste za zaštitu web prometa koji se šalje iz klijentovog web preglednika na web poslužitelj.

SSL certifikat je digitalni certifikat koji stvara siguran kanal između klijentovog preglednika i web poslužitelja. Pritom su osjetljivi i povjerljivi podaci, poput podataka o kreditnim karticama, vjerodajnica za prijavu i drugih vrlo privatnih podataka, šifrirani, što sprečava hakere da prisluškuju i kradu vaše podatke.

Samopotpisani SSL certifikat, za razliku od ostalih SSL certifikata koje potpisuje i pouzdaje tijelo za izdavanje certifikata (CA), certifikat je koji potpisuje osoba koja ga posjeduje.

Potpuno ga je besplatno stvoriti i jeftin je način šifriranja vašeg web hosting servera. Međutim, upotreba samopotpisanog SSL certifikata jako je obeshrabrena u proizvodnim okruženjima iz sljedećih razloga:

  1. Budući da ga nije potpisalo tijelo za izdavanje certifikata, samopotpisani SSL certifikat generira upozorenja na web preglednicima upozoravajući korisnike na potencijalni rizik ako odluče nastaviti. Ta upozorenja nisu poželjna i odvratit će korisnike od posjeta vašoj web stranici, što bi potencijalno moglo dovesti do pada web prometa. Kao rješenje ovih upozorenja, organizacije obično potiču svoje zaposlenike da ih jednostavno ignoriraju i nastave dalje. To može iznjedriti opasnu naviku među korisnicima koji mogu odlučiti i dalje ignorirati ta upozorenja na drugim internetskim stranicama, potencijalno postajući žrtvama phishing stranica.
  2. Samopotpisani certifikati imaju nisku razinu sigurnosti jer implementiraju niskorazinske tehnologije šifriranja. Stoga razina sigurnosti možda neće biti jednaka standardnim sigurnosnim politikama.
  3. Pored toga, nema podrške za funkcije infrastrukture javnih ključeva (PKI).

Međutim, upotreba samopotpisanog SSL certifikata nije loša ideja za testiranje usluga i aplikacija na lokalnom računalu koji zahtijeva TLS/SSL šifriranje.

U ovom ćete vodiču naučiti kako instalirati lokalni samopotpisani SSL certifikat na web-poslužitelj Apache localhost na poslužiteljski sustav CentOS 8.

Prije početka provjerite imate li sljedeće osnovne zahtjeve:

  1. Primjer poslužitelja CentOS 8.
  2. Apache web poslužitelj instaliran na poslužitelju
  3. Ime hosta već konfigurirano i definirano u datoteci/etc/hosts. Za ovaj vodič koristit ćemo tecmint.local ime hosta za naš poslužitelj.

Korak 1: Instalacija Mod_SSL-a na CentOS

1. Za početak morate provjeriti je li web poslužitelj Apache instaliran i pokrenut.

$ sudo systemctl status httpd

Evo očekivanog rezultata.

Ako web poslužitelj nije pokrenut, možete ga pokrenuti i omogućiti nakon pokretanja pomoću naredbe.

$ sudo systemctl start httpd
$ sudo systemctl enable httpd

Nakon toga možete potvrditi radi li Apache.

2. Da biste omogućili instalaciju i postavljanje lokalnog samopotpisanog SSL certifikata, potreban je mod_ssl paket.

$ sudo dnf install mod_ssl

Jednom instaliran, možete provjeriti njegovu instalaciju pokretanjem.

$ sudo rpm -q mod_ssl

Također, osigurajte da je instaliran paket OpenSSL (OpenSSL se standardno instalira u CentOS 8).

$ sudo rpm -q openssl 

Korak 2: Stvorite lokalni samopotpisani SSL certifikat za Apache

3. Pomoću Apache web poslužitelja i svih provjere preduvjeta morate stvoriti direktorij unutar kojeg će biti pohranjeni kriptografski ključevi.

U ovom smo primjeru stvorili direktorij na/etc/ssl/private.

$ sudo mkdir -p /etc/ssl/private

Sada stvorite lokalni ključ i datoteku SSL certifikata pomoću naredbe:

$ sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout tecmint.local.key -out tecmint.local.crt

Pogledajmo što zapravo predstavljaju neke od opcija u naredbi:

  • req -x509 - To ukazuje da koristimo zahtjev za potpisivanje certifikata x509 (CSR).
  • -nodes - Ova opcija upućuje OpenSSL da preskoči šifriranje SSL certifikata pomoću lozinke. Ideja je ovdje omogućiti Apacheu da može čitati datoteku bez ikakve korisničke intervencije koja ne bi bila moguća ako se navede zaporka.
  • -newkey rsa: 2048 - To ukazuje na to da istovremeno želimo stvoriti novi ključ i novi certifikat. Dio rsa: 2048 implicira da želimo stvoriti 2048-bitni RSA ključ.
  • -keyout - Ova opcija određuje gdje će se pohraniti generirana datoteka privatnog ključa prilikom izrade.
  • -out - opcija određuje gdje smjestiti stvoreni SSL certifikat.

Korak 3: Instalirajte lokalni samopotpisani SSL certifikat na Apache

4. Nakon generiranja datoteke SSL certifikata, vrijeme je da instalirate certifikat pomoću postavki web poslužitelja Apache. Otvorite i uredite konfiguracijsku datoteku /etc/httpd/conf.d/ssl.conf.

$ sudo vi /etc/httpd/conf.d/ssl.conf

Provjerite imate li sljedeće retke između oznaka virtualnog hosta.

<VirtualHost *:443>
    ServerAdmin [email 
    ServerName www.tecmint.local
    ServerAlias tecmint.local
 
    DocumentRoot /var/www/html
 
    SSLEngine on
    SSLCertificateFile /etc/ssl/private/tecmint.local.crt
    SSLCertificateKeyFile /etc/ssl/private/tecmint.local.key
</VirtualHost>

Spremite i zatvorite datoteku. Da biste izvršili promjene, ponovo pokrenite Apache pomoću naredbe:

$ sudo systemctl restart httpd

5. Da bi vanjski korisnici mogli pristupiti vašem poslužitelju, otvorite priključak 443 kroz vatrozid kao što je prikazano.

$ sudo firewall-cmd --add-port=443 --zone=public --permanent
$ sudo firewall-cmd --reload

Korak 3: Testiranje lokalnog samopotpisanog SSL certifikata na Apacheu

Sa svim postavljenim konfiguracijama, pokrenite preglednik i pregledajte adresu poslužitelja koristeći IP adresu ili naziv domene poslužitelja koristeći https protokol.

Da biste pojednostavili testiranje, možete razmotriti preusmjeravanje HTTP protokola na HTTPS na web poslužitelju Apache. To je tako da će se svaki put kada domenu pregledavate u običnom HTTP-u automatski preusmjeriti na HTTPS protokol.

Pregledajte domenu ili IP svog poslužitelja

https://domain_name/

Dobit ćete upozorenje da vas veza nije sigurna kako je prikazano. To će se razlikovati od pojedinog preglednika do drugog. Kao što pretpostavljate, upozorenje je zbog činjenice da tijelo za izdavanje certifikata nije potpisalo SSL certifikat, a preglednik to registrira i izvještava da se certifikatu ne može vjerovati.

Da biste nastavili do svog web mjesta, kliknite karticu ‘Napredno’ kako je prikazano gore:

Dalje, dodajte iznimku u preglednik.

Na kraju, ponovo učitajte svoj preglednik i primijetite da sada možete pristupiti poslužitelju, premda će se na URL traci nalaziti upozorenje da web mjesto nije potpuno sigurno iz istog razloga što je SSL certifikat samopotpisan i nije potpisan od strane Tijelo za ovjere.

Nadamo se da sada možete nastaviti i izraditi i instalirati samopotpisani SSL certifikat na web-poslužitelju Apache localhost na CentOS 8.