Mfululizo wa RHCE: Utekelezaji wa HTTPS kupitia TLS kwa kutumia Huduma ya Usalama ya Mtandao (NSS) kwa Apache - Sehemu ya 8


Ikiwa wewe ni msimamizi wa mfumo ambaye ndiye anayesimamia kudumisha na kulinda seva ya wavuti, huwezi kumudu kutotumia juhudi zako zote kuhakikisha kuwa data inayotolewa au kupitia seva yako inalindwa kila wakati.

Ili kutoa mawasiliano salama zaidi kati ya wateja wa wavuti na seva, itifaki ya HTTPS ilizaliwa kama mchanganyiko wa HTTP na SSL (Safu ya Soketi Salama) au hivi karibuni zaidi, TLS (Usalama wa Tabaka la Usafiri).

Kwa sababu ya ukiukaji mkubwa wa usalama, SSL imeacha kutumika kwa ajili ya TLS imara zaidi. Kwa sababu hiyo, katika makala hii tutaeleza jinsi ya kupata miunganisho kati ya seva yako ya wavuti na wateja wanaotumia TLS.

Mafunzo haya yanachukulia kuwa tayari umesakinisha na kusanidi seva yako ya wavuti ya Apache. Ikiwa sivyo, tafadhali rejelea nakala ifuatayo kwenye wavuti hii kabla ya kuendelea zaidi.

  1. Sakinisha LAMP (Linux, MySQL/MariaDB, Apache na PHP) kwenye RHEL/CentOS 7

Ufungaji wa OpenSSL na Huduma

Kwanza, hakikisha kuwa Apache inaendesha na kwamba http na https zinaruhusiwa kupitia ngome:

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

Kisha sasisha vifurushi muhimu:

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

Muhimu: Tafadhali kumbuka kuwa unaweza kubadilisha mod_nss na mod_ssl katika amri iliyo hapo juu ikiwa unataka kutumia maktaba za OpenSSL badala ya NSS (Huduma ya Usalama ya Mtandao) kutekeleza TLS (ni ipi ya kutumia imeachwa kwako kabisa, lakini tutatumia NSS. katika makala haya kwa vile ni thabiti zaidi; kwa mfano, inaauni viwango vya hivi majuzi vya usimbaji fiche kama vile PKCS #11).

Hatimaye, sanidua mod_ssl ikiwa umechagua kutumia mod_nss, au kinyume chake.

# yum remove mod_ssl

Inasanidi NSS (Huduma ya Usalama ya Mtandao)

Baada ya mod_nss kusakinishwa, faili yake ya usanidi chaguo-msingi inaundwa kama /etc/httpd/conf.d/nss.conf. Unapaswa kuhakikisha kuwa maagizo yote ya Sikiliza na VirtualHost yanaelekeza kwenye bandari 443 (bandari chaguomsingi ya HTTPS):

Listen 443
VirtualHost _default_:443

Kisha anza tena Apache na uangalie ikiwa mod_nss moduli imepakiwa:

# apachectl restart
# httpd -M | grep nss

Kisha, uhariri ufuatao unapaswa kufanywa katika /etc/httpd/conf.d/nss.conf faili ya usanidi:

1. Onyesha saraka ya hifadhidata ya NSS. Unaweza kutumia saraka chaguo-msingi au kuunda mpya. Katika somo hili tutatumia chaguo-msingi:

NSSCertificateDatabase /etc/httpd/alias

2. Epuka uwekaji wa kaulisiri kwa kila mfumo anza kwa kuhifadhi nenosiri kwenye saraka ya hifadhidata katika /etc/httpd/nss-db-password.conf:

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

Ambapo /etc/httpd/nss-db-password.conf ina laini ifuatayo TU na nenosiri langu ni nenosiri ambalo utaweka baadaye kwa hifadhidata ya NSS:

internal:mypassword

Kwa kuongezea, ruhusa na umiliki wake unapaswa kuwekwa kwa 0640 na root:apache, mtawalia:

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

3. Red Hat inapendekeza kuzima SSL na matoleo yote ya TLS yaliyotangulia kwa TLSv1.0 kwa sababu ya uwezekano wa POODLE SSLv3 (maelezo zaidi hapa).

Hakikisha kwamba kila mfano wa maagizo ya NSSProtocol yanasomeka kama ifuatavyo (una uwezekano wa kupata moja tu ikiwa hutawakaribisha wapangishi wengine pepe):

NSSProtocol TLSv1.0,TLSv1.1

4. Apache itakataa kuwasha upya kwa kuwa hiki ni cheti kilicho sainiwa kibinafsi na haitamtambua mtoaji kuwa halali. Kwa sababu hii, katika kesi hii italazimika kuongeza:

NSSEnforceValidCerts off

5. Ingawa haihitajiki kabisa, ni muhimu kuweka nenosiri kwa hifadhidata ya NSS:

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