RHCE sorozat: HTTPS megvalósítása TLS-en keresztül az Apache számára készült Network Security Service (NSS) használatával – 8. rész
Ha Ön rendszergazda, aki a webszerver karbantartásáért és biztonságáért felelős, nem engedheti meg magának, hogy ne fordítson minden tőle telhetőt annak biztosítására, hogy a szervere által kiszolgált vagy átmenő adatok mindenkor védettek legyenek.
A webes kliensek és szerverek közötti biztonságosabb kommunikáció érdekében a HTTPS protokoll a HTTP és az SSL kombinációjaként született meg ( Secure Sockets Layer) vagy újabban a TLS (Transport Layer Security).
Néhány súlyos biztonsági incidens miatt az SSL megszűnt, és a robusztusabb TLS helyett. Emiatt ebben a cikkben elmagyarázzuk, hogyan lehet biztonságossá tenni a kapcsolatot a webszerver és az ügyfelek között TLS használatával.
Ez az oktatóanyag feltételezi, hogy már telepítette és konfigurálta az Apache webszervert. Ha nem, kérjük, olvassa el a következő cikket ezen az oldalon, mielőtt továbblépne.
- A LAMP (Linux, MySQL/MariaDB, Apache és PHP) telepítése RHEL/CentOS 7 rendszeren
OpenSSL és segédprogramok telepítése
Először is győződjön meg arról, hogy az Apache fut, és a http és a https egyaránt engedélyezett a tűzfalon:
systemctl start http
systemctl enable http
firewall-cmd --permanent –-add-service=http
firewall-cmd --permanent –-add-service=https
Ezután telepítse a szükséges csomagokat:
yum update && yum install openssl mod_nss crypto-utils
Fontos: Kérjük, vegye figyelembe, hogy a fenti parancsban lecserélheti a mod_nss-t mod_ssl-re, ha használni szeretné a >OpenSSL könyvtárak az NSS (Network Security Service) helyett a TLS megvalósításához (az, hogy melyiket használja, teljesen Önön múlik , de ebben a cikkben az NSS-t fogjuk használni, mivel az robusztusabb; például támogatja a legújabb kriptográfiai szabványokat, mint például a PKCS #11).
Végül távolítsa el a mod_ssl fájlt, ha a mod_nss használatát választotta, vagy fordítva.
yum remove mod_ssl
Az NSS (Network Security Service) konfigurálása
A mod_nss telepítése után az alapértelmezett konfigurációs fájl a következőként jön létre: /etc/httpd/conf.d/nss.conf. Ezután győződjön meg arról, hogy az összes Listen és VirtualHost direktíva a 443-as portra mutat (a HTTPS alapértelmezett portja):
Listen 443
VirtualHost _default_:443
Ezután indítsa újra az Apache-t, és ellenőrizze, hogy a mod_nss modul betöltődött-e:
apachectl restart
httpd -M | grep nss
Ezután a következő szerkesztéseket kell elvégezni az /etc/httpd/conf.d/nss.conf
konfigurációs fájlban:
1. Jelölje meg az NSS-adatbázis címtárát. Használhatja az alapértelmezett könyvtárat, vagy létrehozhat egy újat. Ebben az oktatóanyagban az alapértelmezettet fogjuk használni:
NSSCertificateDatabase /etc/httpd/alias
2. Kerülje el a jelszó manuális bevitelét minden rendszeren úgy, hogy először mentse a jelszót a /etc/httpd/nss-db-password.conf adatbázis-könyvtárba:
NSSPassPhraseDialog file:/etc/httpd/nss-db-password.conf
Ahol az /etc/httpd/nss-db-password.conf CSAK a következő sort tartalmazza, a mypassword pedig az a jelszó, amelyet később beállít az NSS-adatbázishoz:
internal:mypassword
Ezenkívül az engedélyeket és a tulajdonjogot 0640 és root:apache értékre kell állítani:
chmod 640 /etc/httpd/nss-db-password.conf
chgrp apache /etc/httpd/nss-db-password.conf
3. A Red Hat az SSL és a TLSv1.0 előtti TLS összes verziójának letiltását javasolja a >POODLE SSLv3 sebezhetőség (további információ itt).
Győződjön meg arról, hogy az NSSProtocol direktíva minden példánya a következőképpen szól (valószínűleg csak egyet fog találni, ha nem üzemeltet más virtuális gazdagépet):
NSSProtocol TLSv1.0,TLSv1.1
4. Az Apache megtagadja az újraindítást, mivel ez egy önaláírt tanúsítvány, és nem ismeri el érvényesnek a kibocsátót. Emiatt ebben a konkrét esetben hozzá kell adnia:
NSSEnforceValidCerts off
5. Bár nem feltétlenül kötelező, fontos jelszót beállítani az NSS-adatbázishoz:
certutil -W -d /etc/httpd/alias