RHCE seeria: HTTPS-i juurutamine TLS-i kaudu Apache'i võrgu turvateenuse (NSS) abil - 8. osa


Kui olete süsteemiadministraator, kes vastutab veebiserveri hooldamise ja turvamise eest, ei saa te endale lubada, et te ei pühendaks oma parima, et tagada serveri poolt edastatud või selle kaudu läbitud andmete kogu aeg kaitse.

Turvalisema suhtluse tagamiseks veebiklientide ja serverite vahel sündis HTTPS-protokoll HTTP ja SSL (Secure Sockets Layer) või hiljuti TLS (Transport Layer Security) kombinatsioonina.

Mõne tõsise turvarikkumise tõttu on SSL tugevama TLS-i kasuks aegunud. Sel põhjusel selgitame selles artiklis, kuidas kaitsta TLS-i abil oma veebiserveri ja klientide vahelisi sidemeid.

Selles õpetuses eeldatakse, et olete oma Apache veebiserveri juba installinud ja konfigureerinud. Kui ei, siis lugege enne jätkamist selle saidi järgmist artiklit.

  1. Paigaldage LAMP (Linux, MySQL/MariaDB, Apache ja PHP) RHEL/CentOS 7-le

OpenSSLi ja utiliitide installimine

Kõigepealt veenduge, et Apache töötab ja nii tulemüüri kaudu on lubatud nii http kui ka https:

# systemctl start http
# systemctl enable http
# firewall-cmd --permanent –-add-service=http
# firewall-cmd --permanent –-add-service=https

Seejärel installige vajalikud paketid:

# yum update && yum install openssl mod_nss crypto-utils

Tähtis: Pange tähele, et ülaltoodud käsus saate mod_nss asendada mod_ssl-ga, kui soovite TLS-i juurutamiseks kasutada NSS-i (Network Security Service) asemel OpenSSL-i teeke (millist kasutada, see jääb täielikult teie enda teha, kuid me kasutame NSS-i selles artiklis, kuna see on jõulisem; näiteks toetab see hiljutisi krüptograafiastandardeid, nagu PKCS # 11).

Lõpuks desinstallige mod_ssl, kui otsustasite kasutada mod_nss või viceversa.

# yum remove mod_ssl

NSS-i (võrgu turvateenuse) konfigureerimine

Pärast mod_nss installimist luuakse selle vaikekonfiguratsioonifail nimega /etc/httpd/conf.d/nss.conf. Seejärel peaksite veenduma, et kõik Listen ja VirtualHost direktiivid osutaksid porti 443 (HTTPS-i vaikeport):

Listen 443
VirtualHost _default_:443

Seejärel taaskäivitage Apache ja kontrollige, kas mod_nss moodul on laaditud:

# apachectl restart
# httpd -M | grep nss

Järgmisena tuleks konfiguratsioonifailis /etc/httpd/conf.d/nss.conf teha järgmised muudatused:

1. Märkige NSS-i andmebaasikataloog. Võite kasutada vaikekataloogi või luua uue. Selles õpetuses kasutame vaikimisi:

NSSCertificateDatabase /etc/httpd/alias

2. Vältige paroolide käsitsi sisestamist iga süsteemi käivitamisel, salvestades parooli andmebaasi kataloogi kataloogis /etc/httpd/nss-db-password.conf:

NSSPassPhraseDialog file:/etc/httpd/nss-db-password.conf

Kus /etc/httpd/nss-db-password.conf sisaldab AINULT järgmist rida ja minu parool on parool, mille määrate hiljem NSS-i andmebaasi jaoks:

internal:mypassword

Lisaks peaksid selle õigused ja omandiõigused olema määratud vastavalt väärtusele 0640 ja root: apache:

# chmod 640 /etc/httpd/nss-db-password.conf
# chgrp apache /etc/httpd/nss-db-password.conf

3. Red Hat soovitab POODLE SSLv3 haavatavuse tõttu blokeerida SSL ja kõik TLSv1.0 varasemad versioonid (lisateavet leiate siit).

Veenduge, et iga NSSProtocol-direktiivi eksemplar oleks järgmine (tõenäoliselt leiate ainult ühe, kui te ei majuta teisi virtuaalseid hoste):

NSSProtocol TLSv1.0,TLSv1.1

4. Apache keeldub taaskäivitamisest, kuna see on ise allkirjastatud sertifikaat ega tunnista väljaandjat kehtivana. Sel põhjusel peate sel konkreetsel juhul lisama:

NSSEnforceValidCerts off

5. Kuigi see pole rangelt nõutav, on oluline NSS-i andmebaasi jaoks parool määrata:

# certutil -W -d /etc/httpd/alias