Seria RHCE wdrażająca HTTPS za pośrednictwem TLS za pomocą sieci bezpieczeństwa sieci (NSS) dla Apache - Część 8

Seria RHCE wdrażająca HTTPS za pośrednictwem TLS za pomocą sieci bezpieczeństwa sieci (NSS) dla Apache - Część 8

Jeśli jesteś administratorem systemu, który jest odpowiedzialny za utrzymanie i zabezpieczenie serwera WWW, nie możesz sobie pozwolić na nie poświęcenie swoich najlepszych starań, aby zapewnić, że dane obsługiwane przez serwer lub przejście przez serwer były przez cały czas chronione.

Seria RHCE: Wdrożenie HTTPS za pośrednictwem TLS przy użyciu usługi bezpieczeństwa sieci (NSS) dla Apache - Część 8

Aby zapewnić bezpieczniejszą komunikację między klientami internetowymi i serwerami, Https Protokół urodził się jako kombinacja Http I SSL (Bezpieczna warstwa gniazd) lub ostatnio, Tls (Bezpieczeństwo warstwy transportowej).

Z powodu poważnych naruszeń bezpieczeństwa, SSL został przestarzały na korzyść bardziej solidnego Tls. Z tego powodu w tym artykule wyjaśnimy, jak zabezpieczyć połączenia między serwerem WWW a klientami za pomocą TLS.

Ten samouczek zakłada, że ​​już zainstalowałeś i skonfigurowałeś swój serwer WWW Apache. Jeśli nie, zapoznaj się z następującym artykułem na tej stronie przed kontynuowaniem.

  1. Zainstaluj lampę (Linux, MySQL/Mariadb, Apache i PHP) na RHEL/CENTOS 7

Instalacja OpenSSL i narzędzi

Po pierwsze, upewnij się Apache działa i że oba http I https są dozwolone przez zaporę:

# Systemctl start http # Systemctl Włącz http # Firewall-CMD --PerManent --add-Service = Http # Firewall-CMD --Permanent --add-Service = Https 

Następnie zainstaluj niezbędne pakiety:

# Yum Update && Yum Instal OpenSsl mod_nss Crypto-Utils 

Ważny: Pamiętaj, że możesz wymienić mod_nss z mod_ssl w powyższym poleceniu, jeśli chcesz użyć Openssl biblioteki zamiast NSS (Usługa bezpieczeństwa sieci) do wdrożenia Tls (Który użyć, pozostaje w całości, ale użyjemy NSS w tym artykule, ponieważ jest on bardziej solidny; na przykład obsługuje najnowsze standardy kryptografii, takie jak PKCS #11).

Wreszcie odinstaluj mod_ssl Jeśli zdecydowałeś się użyć mod_nss, lub odwrotnie.

# Yum Usuń mod_ssl 

Konfigurowanie NSS (usługa bezpieczeństwa sieci)

Po mod_nss jest zainstalowany, jego domyślny plik konfiguracyjny jest tworzony jako /etc/httpd/conf.D/NSS.conf. Powinieneś upewnić się, że wszystkie Słuchać I Virtualhost Dyrektywy wskazują na port 443 (Domyślny port dla HTTPS):

NSS.Conf - plik konfiguracyjny
Posłuchaj 443 VirtualHost _default_: 443 

Następnie uruchom ponownie Apache i sprawdź, czy mod_nss Moduł został załadowany:

# Apachectl restart # httpd -m | GREP NSS 
Sprawdź moduł MOD_NSS załadowany w Apache

Następnie należy dokonać następujących edycji /etc/httpd/conf.D/NSS.conf plik konfiguracyjny:

1. Wskaż katalog bazy danych NSS. Możesz użyć Domyślnego katalogu lub utworzyć nowy. W tym samouczku użyjemy domyślnego:

NsScertifiateAtabaza/etc/httpd/alias 

2. Unikaj ręcznego wpisu do pseudonimu w każdym uruchomieniu systemu, zapisując hasło do katalogu bazy danych w /etc/httpd/nss-db-password.conf:

NSSPASSPHRACEDIALOG PLIK:/etc/httpd/nss-db-password.conf 

Gdzie /etc/httpd/nss-db-password.conf zawiera tylko następujący wiersz i moje hasło to hasło, które ustawiasz później dla bazy danych NSS:

Wewnętrzne: MyPassword 

Ponadto należy ustalić jego uprawnienia i własność 0640 I root: Apache, odpowiednio:

# CHMOD 640/etc/httpd/nss-db-password.Conf # CHGRP Apache/etc/httpd/nss-db-password.conf 

3. Red Hat zaleca wyłączenie SSL i wszystkie wersje Tls poprzedzającym TLSV1.0 z powodu Pudle sslv3 podatność (więcej informacji tutaj).

Upewnij się, że każda instancja Nssprotocol Dyrektywa odczytuje się w następujący sposób (prawdopodobnie znajdziesz tylko jedną, jeśli nie hostujesz innych wirtualnych hostów):

Nssprotocol tlsv1.0, TLSV1.1 

4. Apache odmówi ponownego uruchomienia, ponieważ jest to samowystarczalny certyfikat i nie uzna tego, że emitent jest ważny. Z tego powodu w tym konkretnym przypadku będziesz musiał dodać:

Nssenforcevalidcerts 

5. Choć nie jest to wyłącznie wymagane, ważne jest, aby ustawić hasło dla bazy danych NSS:

# certutil -w -d/etc/httpd/alias 
Ustaw hasło dla stron bazy danych NSS: 1 2