Weboldal keresés

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.

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