Kako ustvariti lokalno samopodpisano potrdilo SSL na CentOS 8


SSL (Secure Socket Layer) in njegova izboljšana različica TLS (Transport Socket Layer) sta varnostna protokola, ki se uporabljata za zaščito spletnega prometa, ki se pošlje iz odjemalčevega spletnega brskalnika na spletni strežnik.

Potrdilo SSL je digitalno potrdilo, ki ustvarja varen kanal med brskalnikom stranke in spletnim strežnikom. S tem so šifrirani občutljivi in zaupni podatki, kot so podatki o kreditnih karticah, poverilnice za prijavo in drugi zelo zasebni podatki, ki hekerjem preprečujejo prisluškovanje in krajo vaših podatkov.

Samopodpisano potrdilo SSL je za razliko od drugih potrdil SSL, ki jih podpiše overitelj in jim zaupa overitelj (CA), potrdilo, ki ga podpiše posameznik, ki ga ima v lasti.

Ustvarite ga lahko popolnoma brezplačno in je poceni način šifriranja vašega lokalno gostovanega spletnega strežnika. Vendar pa uporaba samopodpisanega certifikata SSL v proizvodnih okoljih odsvetujemo iz naslednjih razlogov:

  1. Ker ga ni podpisal overitelj, samopodpisano potrdilo SSL v spletnih brskalnikih generira opozorila, ki opozarjajo uporabnike na morebitno tveganje, če se bodo odločili nadaljevati. Ta opozorila niso zaželena in bodo uporabnike odvrnila od obiska vašega spletnega mesta, kar bi lahko povzročilo upad spletnega prometa. Kot rešitev za ta opozorila organizacije običajno spodbujajo zaposlene, naj opozorila preprosto prezrejo in nadaljujejo. To lahko ustvari nevarno navado med uporabniki, ki se bodo morda še naprej ignorirali na drugih spletnih mestih in lahko postali žrtve lažnih spletnih mest.
  2. Samopodpisana potrdila imajo nizko stopnjo varnosti, saj izvajajo nizko stopnjo šifrirnih tehnologij in zgoščenk. Tako raven varnosti morda ni enaka standardni varnostni politiki.
  3. Poleg tega ni podpore za funkcije infrastrukture javnih ključev (PKI).

Vendar uporaba samopodpisanega potrdila SSL ni slaba ideja za testiranje storitev in aplikacij na lokalnem računalniku, ki zahteva šifriranje TLS/SSL.

V tem priročniku boste izvedeli, kako namestiti lokalno samopodpisano potrdilo SSL na spletni strežnik Apache localhost v strežniškem sistemu CentOS 8.

Preden začnete, se prepričajte, da imate naslednje osnovne zahteve:

  1. Primer strežnika CentOS 8.
  2. Na strežniku nameščen spletni strežnik Apache
  3. Ime gostitelja, ki je že konfigurirano in določeno v datoteki/etc/hosts. Za ta vodnik bomo uporabili tecmint.local ime gostitelja za naš strežnik.

1. korak: Namestitev Mod_SSL na CentOS

1. Za začetek morate preveriti, ali je spletni strežnik Apache nameščen in deluje.

$ sudo systemctl status httpd

Tu je pričakovana proizvodnja.

Če spletni strežnik ne deluje, ga lahko ob zagonu z ukazom zaženete in omogočite.

$ sudo systemctl start httpd
$ sudo systemctl enable httpd

Nato lahko potrdite, ali Apache deluje in deluje.

2. Za omogočanje namestitve in nastavitve lokalnega samopodpisanega potrdila SSL je potreben paket mod_ssl.

$ sudo dnf install mod_ssl

Ko je nameščen, lahko z namestitvijo preverite njegovo namestitev.

$ sudo rpm -q mod_ssl

Prepričajte se tudi, da je nameščen paket OpenSSL (OpenSSL je privzeto nameščen v CentOS 8).

$ sudo rpm -q openssl 

2. korak: Ustvarite lokalno samopodpisano potrdilo SSL za Apache

3. S spletnim strežnikom Apache in vsemi zahtevanimi predpogoji morate ustvariti imenik, v katerem bodo shranjeni kriptografski ključi.

V tem primeru smo ustvarili imenik na/etc/ssl/private.

$ sudo mkdir -p /etc/ssl/private

Zdaj z ukazom ustvarite lokalni ključ in datoteko potrdila SSL:

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

Oglejmo si, kaj dejansko pomenijo nekatere možnosti v ukazu:

  • req -x509 - To pomeni, da uporabljamo zahtevo za podpis potrdila x509 (CSR).
  • -nodes - Ta možnost naroči OpenSSL, da preskoči šifriranje potrdila SSL z geslom. Ideja je omogočiti Apacheju, da lahko bere datoteko brez kakršnega koli posredovanja uporabnika, kar pa ne bi bilo mogoče, če je na voljo geslo.
  • -newkey rsa: 2048 - To pomeni, da želimo hkrati ustvariti nov ključ in novo potrdilo. Del rsa: 2048 pomeni, da želimo ustvariti 2048-bitni RSA ključ.
  • -keyout - Ta možnost določa, kam shraniti ustvarjeno datoteko z zasebnim ključem ob ustvarjanju.
  • -out - Možnost določa, kam naj se ustvari ustvarjeno potrdilo SSL.

3. korak: Namestite lokalno samopodpisano potrdilo SSL na Apache

4. Ko je ustvarila datoteko s potrdilom SSL, je čas, da jo namestite z uporabo nastavitev spletnega strežnika Apache Odprite in uredite konfiguracijsko datoteko /etc/httpd/conf.d/ssl.conf.

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

Med oznakami navideznega gostitelja morate imeti naslednje vrstice.

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

Shranite in zapustite datoteko. Za izvedbo sprememb znova zaženite Apache z ukazom:

$ sudo systemctl restart httpd

5. Če želite zunanji uporabniki dostopati do vašega strežnika, morate skozi požarni zid odpreti vrata 443, kot je prikazano.

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

3. korak: Testiranje lokalnega samopodpisanega potrdila SSL na Apache

Z vsemi konfiguracijami na mestu zaženite brskalnik in po naslovu IP strežnika ali imenu domene brskajte po naslovu strežnika s protokolom https.

Za poenostavitev testiranja lahko razmislite o preusmeritvi protokola HTTP na HTTPS na spletnem strežniku Apache. To je tako, da bo vsakič, ko brskate po domeni v navadnem HTTP, samodejno preusmerjena na protokol HTTPS.

Brskaj torej po domeni ali IP strežnika

https://domain_name/

Prejeli boste opozorilo, da povezava ni varna, kot je prikazano. To se razlikuje od brskalnika do brskalnika. Kot ugibate, je opozorilo posledica dejstva, da overitelj SSL ni podpisal overitelja, brskalnik pa to registrira in poroča, da certifikatu ni mogoče zaupati.

Če želite nadaljevati s svojim spletnim mestom, kliknite zavihek "Napredno", kot je prikazano zgoraj:

Nato v brskalnik dodajte izjemo.

Na koncu znova naložite brskalnik in opazujte, da lahko zdaj dostopate do strežnika, čeprav bo v vrstici URL prikazano opozorilo, da spletno mesto ni popolnoma varno iz istega razloga, ker je potrdilo SSL samopodpisano in ni podpisano s strani Certifikacijski organ.

Upamo, da lahko zdaj nadaljujete ter ustvarite in namestite samopodpisano potrdilo SSL na spletni strežnik Apache localhost na CentOS 8.