Kako kreirati lokalni samopotpisani SSL certifikat na CentOS 8


SSL (Secure Socket Layer) i njegova poboljšana verzija, TLS (Transport Socket Layer), su sigurnosni protokoli koji se koriste za osiguranje web prometa koji se šalje iz web pretraživača klijenta na web server.

SSL certifikat je digitalni certifikat koji stvara siguran kanal između klijentovog pretraživača i web servera. Na taj način, osjetljivi i povjerljivi podaci kao što su podaci o kreditnim karticama, vjerodajnici za prijavu i druge vrlo privatne informacije su šifrirani, sprječavajući hakere da prisluškuju i ukradu vaše podatke.

Šta je samopotpisani SSL certifikat?

Samopotpisani SSL certifikat, za razliku od drugih SSL certifikata koji su potpisani i kojima vjeruje Certificate Authority (CA), je certifikat potpisan od pojedinac koji ga poseduje.

Potpuno ga je besplatno kreirati i jeftin je način šifriranja vašeg lokalno hostiranog web servera. Međutim, upotreba samopotpisanog SSL certifikata se ne preporučuje u proizvodnim okruženjima iz sljedećih razloga:

  1. Budući da nije potpisan od Certificate Authority, samopotpisani SSL certifikat generira upozorenja na web preglednicima upozoravajući korisnike na potencijalni rizik ako odluče da nastave. Ova upozorenja su nepoželjna i odvratit će korisnike od posjete vašoj web stranici, što potencijalno može dovesti do pada prometa na webu. Kao rješenje za ova upozorenja, organizacije obično ohrabruju svoje zaposlenike da jednostavno ignorišu upozorenja i nastave dalje. Ovo može izazvati opasnu naviku među korisnicima koji mogu odlučiti da nastave ignorirati ova upozorenja na drugim internetskim stranicama, potencijalno postati žrtva phishing stranica.
  2. Samopotpisani certifikati imaju nisku razinu sigurnosti jer implementiraju tehnologije šifriranja niskog nivoa i hešove. Stoga nivo sigurnosti možda nije u skladu sa standardnim sigurnosnim politikama.
  3. Osim toga, ne postoji podrška za funkcije infrastrukture javnog ključa (PKI).

Ipak, upotreba samopotpisanog SSL certifikata nije loša ideja za testiranje usluga i aplikacija na lokalnom računalu koje zahtijeva TLS/SSL enkripciju.

U ovom vodiču ćete naučiti kako da instalirate lokalni samopotpisani SSL certifikat na Apache localhost web server na CentOS 8 serverskom sistemu.

Preduvjeti:

Prije nego što počnete, uvjerite se da imate sljedeće osnovne zahtjeve:

  1. Instanca CentOS 8 servera.
  2. Apache web server instaliran na serveru
  3. Ime hosta je već konfigurirano i definirano u datoteci /etc/hosts. Za ovaj vodič koristit ćemo tecmint.local ime hosta za naš server.

Korak 1: Instaliranje Mod_SSL na CentOS

1. Da biste započeli, morate provjeriti da je web server Apache instaliran i da radi.

sudo systemctl status httpd

Evo očekivanog rezultata.

Ako web server ne radi, 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 da li je Apache pokrenut i radi.

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

sudo dnf install mod_ssl

Jednom instaliran, možete provjeriti njegovu instalaciju pokretanjem.

sudo rpm -q mod_ssl

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

sudo rpm -q openssl 

Korak 2: Kreirajte lokalni samopotpisani SSL certifikat za Apache

3. Uz provjeru Apache web servera i svih preduvjeta, potrebno je da kreirate direktorij u kojem će biti pohranjeni kriptografski ključevi.

U ovom primjeru, kreirali smo direktorij na /etc/ssl/private.

sudo mkdir -p /etc/ssl/private

Sada kreirajte lokalni ključ SSL certifikata i datoteku koristeći naredbu:

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

Hajde da pogledamo šta neke od opcija u naredbi zapravo predstavljaju:

  • req -x509 – Ovo označava da koristimo x509 zahtjev za potpisivanje certifikata (CSR).
  • -čvorovi – Ova opcija upućuje OpenSSL da preskoči šifriranje SSL certifikata pomoću šifre. Ideja je da se Apache-u omogući da čita fajl bez ikakve intervencije korisnika što ne bi bilo moguće ako se obezbedi pristupna fraza.
  • -newkey rsa:2048 – Ovo ukazuje da želimo istovremeno kreirati novi ključ i novi certifikat. Dio rsa:2048 implicira da želimo da kreiramo 2048-bitni RSA ključ.
  • -keyout – Ova opcija određuje gdje će se pohraniti generirani privatni ključ fajl nakon kreiranja.
  • -out – Opcija specificira gdje treba postaviti kreirani SSL certifikat.

Korak 3: Instalirajte lokalni samopotpisani SSL certifikat na Apache

4. Nakon generiranja datoteke SSL certifikata, sada je vrijeme da instalirate certifikat koristeći postavke Apache web servera. Otvorite i uredite /etc/httpd/conf.d/ssl.conf konfiguracijski fajl.

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

Uvjerite se da imate sljedeće redove 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>

Sačuvajte i izađite iz datoteke. Da bi se promjene izvršile, ponovo pokrenite Apache koristeći naredbu:

sudo systemctl restart httpd

5. Da bi vanjski korisnici pristupili vašem serveru, morate otvoriti port 443 kroz zaštitni zid 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 konfiguracijama na mjestu, pokrenite preglednik i pretražujte adresu svog servera koristeći IP adresu ili ime domene servera koristeći https protokol.

Da biste pojednostavili testiranje, možete razmotriti preusmjeravanje HTTP protokola na HTTPS na Apache web serveru. Ovo je tako da svaki put kada pregledate domenu u običnom HTTP-u, ona će automatski biti preusmjerena na HTTPS protokol.

Dakle, pregledajte domenu ili IP vašeg servera

https://domain_name/

Dobit ćete upozorenje koje vas obavještava da veza nije sigurna kao što je prikazano. Ovo će se razlikovati od jednog pretraživača do drugog. Kao što možete pretpostaviti, upozorenje je zbog činjenice da SSL certifikat nije potpisao Certificate Authority i pretraživač to registruje i izvještava da se certifikatu ne može vjerovati.

Da biste nastavili na svoju web stranicu, kliknite na karticu 'Napredno' kao što je prikazano iznad:

Zatim dodajte izuzetak u pretraživač.

Konačno, ponovo učitajte svoj pretraživač i obratite pažnju da sada možete pristupiti serveru, iako će se na URL traci pojaviti upozorenje da stranica nije potpuno sigurna iz istog razloga zbog kojeg je SSL certifikat samopotpisan, a ne potpisan od strane Certificate Authority.

Nadamo se da sada možete nastaviti i kreirati i instalirati samopotpisani SSL certifikat na Apache localhost web server na CentOS 8.