Serje RHCE: L-implimentazzjoni ta' HTTPS permezz ta' TLS bl-użu tas-Servizz tas-Sigurtà tan-Netwerk (NSS) għal Apache - Parti 8


Jekk inti amministratur tas-sistema li huwa inkarigat li jżomm u jassigura web server, ma tistax taffordja li ma tiddedikax l-aħjar sforzi tiegħek biex tiżgura li d-dejta moqdija mis-server tiegħek jew li tgħaddi minnu tkun protetta l-ħin kollu.

Sabiex jiġu pprovduti komunikazzjonijiet aktar siguri bejn il-klijenti tal-web u s-servers, il-protokoll HTTPS twieled bħala kombinazzjoni ta 'HTTP u SSL (Secure Sockets Layer) jew aktar reċentement, TLS (Transport Layer Security).

Minħabba xi ksur serju tas-sigurtà, SSL ġie deprecato favur it-TLS aktar robust. Għal dik ir-raġuni, f'dan l-artikolu se nispjegaw kif niżguraw konnessjonijiet bejn is-server tal-web tiegħek u l-klijenti li jużaw TLS.

Dan it-tutorja jassumi li diġà installajt u kkonfigurajt is-server tal-web Apache tiegħek. Jekk le, jekk jogħġbok irreferi għall-artikolu li ġej f'dan is-sit qabel ma tkompli.

  1. Installa LAMP (Linux, MySQL/MariaDB, Apache u PHP) fuq RHEL/CentOS 7

Installazzjoni ta' OpenSSL u Utilitajiet

L-ewwelnett, kun żgur li Apache qed jaħdem u li kemm http u https huma permessi permezz tal-firewall:

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

Imbagħad installa l-pakketti meħtieġa:

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

Importanti: Jekk jogħġbok innota li tista' tissostitwixxi mod_nss b'mod_ssl fil-kmand ta' hawn fuq jekk trid tuża libreriji OpenSSL minflok NSS (Servizz tas-Sigurtà tan-Netwerk) biex timplimenta TLS (liema waħda tuża titħalla kompletament f'idejk, iżda aħna se nużaw NSS f'dan l-artikolu peress li huwa aktar robust; pereżempju, jappoġġa standards riċenti tal-kriptografija bħal PKCS #11).

Fl-aħħarnett, iddiżinstalla mod_ssl jekk għażilt li tuża mod_nss, jew viċeversa.

# yum remove mod_ssl

Konfigurazzjoni tal-NSS (Servizz tas-Sigurtà tan-Netwerk)

Wara li mod_nss jiġi installat, il-fajl tal-konfigurazzjoni default tiegħu jinħoloq bħala /etc/httpd/conf.d/nss.conf. Imbagħad għandek tiżgura li d-direttivi Isma u VirtualHost kollha jindikaw il-port 443 (port default għal HTTPS):

Listen 443
VirtualHost _default_:443

Imbagħad erġa ibda Apache u iċċekkja jekk il-mod_nss modulu ġiex mgħobbi:

# apachectl restart
# httpd -M | grep nss

Sussegwentement, il-modifiki li ġejjin għandhom isiru fil-fajl tal-konfigurazzjoni /etc/httpd/conf.d/nss.conf:

1. Indika direttorju tad-database tal-NSS. Tista' tuża d-direttorju default jew toħloq wieħed ġdid. F'dan it-tutorja se nużaw il-default:

NSSCertificateDatabase /etc/httpd/alias

2. Evita d-dħul manwali tal-passphrase fuq kull sistema ibda billi tissejvja l-password fid-direttorju tad-database f'/etc/httpd/nss-db-password.conf:

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

Fejn /etc/httpd/nss-db-password.conf fih BISS il-linja li ġejja u mypassword hija l-password li inti ser issettja aktar tard għad-database tal-NSS:

internal:mypassword

Barra minn hekk, il-permessi u s-sjieda tiegħu għandhom ikunu ssettjati għal 0640 u root:apache, rispettivament:

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

3. Red Hat jirrakkomanda li SSL u l-verżjonijiet kollha ta 'TLS qabel TLSv1.0 jiskonnettjaw minħabba l-vulnerabbiltà POODLE SSLv3 (aktar informazzjoni hawn).

Kun żgur li kull istanza tad-direttiva NSSProtocol taqra kif ġej (x'aktarx li ssib waħda biss jekk m'intix qed tospita hosts virtwali oħra):

NSSProtocol TLSv1.0,TLSv1.1

4. Apache se jirrifjuta li jerġa 'jibda peress li dan huwa ċertifikat iffirmat minnu nnifsu u mhux se jirrikonoxxi lill-emittent bħala validu. Għal din ir-raġuni, f'dan il-każ partikolari jkollok iżżid:

NSSEnforceValidCerts off

5. Għalkemm mhux strettament meħtieġ, huwa importanti li tissettja password għad-database tal-NSS:

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