RHCE-sarja: HTTPS: n toteuttaminen TLS: n avulla Apache-verkkoturvallisuuspalvelun (NSS) avulla - osa 8


Jos olet järjestelmänvalvoja, joka on vastuussa verkkopalvelimen ylläpidosta ja suojaamisesta, sinulla ei ole varaa olla panostamatta parhaalla mahdollisella tavalla sen varmistamiseksi, että palvelimesi tarjoamat tai sen kautta kulkevat tiedot ovat aina suojattuja.

Turvallisemman viestinnän tarjoamiseksi web-asiakkaiden ja palvelimien välillä HTTPS-protokolla syntyi HTTP: n ja SSL: n (Secure Sockets Layer) tai viime aikoina TLS (Transport Layer Security) -yhdistelmänä.

Vakavien tietoturvaloukkausten vuoksi SSL on vanhentunut vankemman TLS: n hyväksi. Tästä syystä tässä artikkelissa selitämme, kuinka suojata yhteydet verkkopalvelimesi ja asiakkaasi välillä TLS: n avulla.

Tässä opetusohjelmassa oletetaan, että olet jo asentanut ja määrittänyt Apache-verkkopalvelimesi. Jos ei, tutustu seuraavaan tämän sivuston artikkeliin ennen kuin jatkat.

  1. Asenna LAMP (Linux, MySQL/MariaDB, Apache ja PHP) RHEL/CentOS 7: lle

OpenSSL: n ja apuohjelmien asennus

Ensinnäkin varmista, että Apache on käynnissä ja että sekä http että https ovat sallittuja palomuurin kautta:

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

Asenna sitten tarvittavat paketit:

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

Tärkeää: Huomaa, että voit korvata mod_nss: n mod_ssl: llä yllä olevassa komennossa, jos haluat käyttää OpenSSL-kirjastoja NSS: n (Network Security Service) sijasta TLS: n toteuttamiseen (kumpi käyttää, jää täysin sinun tehtäväsi, mutta käytämme NSS: ää tässä artikkelissa, koska se on vankempi; esimerkiksi se tukee viimeaikaisia salausstandardeja, kuten PKCS # 11).

Poista lopuksi mod_ssl, jos päätit käyttää mod_nss: ää tai viceversaa.

# yum remove mod_ssl

NSS: n (verkkoturvapalvelu) määrittäminen

Kun mod_nss on asennettu, sen oletusasetustiedosto luodaan nimellä /etc/httpd/conf.d/nss.conf. Varmista sitten, että kaikki Kuuntelu- ja VirtualHost-direktiivit osoittavat porttiin 443 (oletusportti HTTPS: lle):

Listen 443
VirtualHost _default_:443

Käynnistä sitten Apache uudelleen ja tarkista, onko mod_nss-moduuli ladattu:

# apachectl restart
# httpd -M | grep nss

Seuraavaksi seuraavat muutokset on tehtävä määritystiedostoon /etc/httpd/conf.d/nss.conf :

1. Ilmoita NSS-tietokantahakemisto. Voit käyttää oletushakemistoa tai luoda uuden. Tässä opetusohjelmassa käytämme oletusarvoa:

NSSCertificateDatabase /etc/httpd/alias

2. Vältä salasanojen manuaalista syöttämistä jokaisessa järjestelmän käynnistyksessä tallentamalla salasana tietokannan hakemistoon hakemistossa /etc/httpd/nss-db-password.conf:

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

Missä /etc/httpd/nss-db-password.conf sisältää VAIN seuraavan rivin ja salasana on salasana, jonka asetat myöhemmin NSS-tietokannalle:

internal:mypassword

Lisäksi sen käyttöoikeuksiksi ja omistajuudeksi tulisi asettaa 0640 ja root: apache, vastaavasti:

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

3. Red Hat suosittelee SSL: n ja kaikkien TLSv1.0: n aiempien versioiden poistamista käytöstä POODLE SSLv3 -heikkouden vuoksi (lisätietoja täältä).

Varmista, että jokainen NSSProtocol-direktiivin ilmentymä kuuluu seuraavasti (todennäköisesti löydät vain yhden, jos et isännöi muita virtuaalisia isäntiä):

NSSProtocol TLSv1.0,TLSv1.1

4. Apache kieltäytyy käynnistämästä uudelleen, koska tämä on itse allekirjoittama varmenne eikä tunnista liikkeeseenlaskijaa kelvollisena. Tästä syystä sinun on tässä tapauksessa lisättävä:

NSSEnforceValidCerts off

5. Vaikka sitä ei ehdottomasti vaadita, on tärkeää asettaa salasana NSS-tietokannalle:

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