Securizarea Apache cu un certificat SSL/TLS este crucială pentru protejarea datelor transmise între server și utilizatori. Implementarea acestui tip de certificat permite accesarea site-ului sau aplicației web prin protocolul HTTPS, asigurând o conexiune criptată și sigură.
În continuare, vom parcurge pașii necesari pentru a realiza acest lucru:
- Vom compila Apache HTTP 2.4.5 incluzând modulul SSL.
- Vom obține un certificat SSL valid.
- Vom configura serverul Apache pentru a accepta conexiuni securizate prin SSL.
Instalarea Apache cu suport SSL din sursă
Pentru a activa conexiunile SSL, serverul Apache HTTP trebuie compilat cu modulul mod_ssl
. În acest exemplu, vom utiliza o mașină virtuală CentOS 7 de la Digital Ocean.
- Începem prin a ne conecta la serverul Linux ca utilizator root și vom descărca cea mai recentă versiune de Apache:
wget http://www-us.apache.org/dist//httpd/httpd-2.4.25.tar.gz .
Notă: Este recomandat să verificați site-ul oficial pentru a vă asigura că descărcați cea mai recentă versiune disponibilă.
- Extragem arhiva descărcată folosind comanda
gunzip
:
gunzip -c httpd-2.4.25.tar.gz | tar xvf -
- Va apărea un nou director numit „httpd-2.4.25”. Navigăm în acest director și executăm următoarea comandă de configurare:
./configure --enable-ssl --enable-so
Notă: Pe un server nou, este posibil să întâmpinați probleme legate de dependințele APR, PCRE, OpenSSL. În cazul unor astfel de erori, consultați un ghid de depanare corespunzător.
După ce ne asigurăm că nu apar erori în timpul configurării, continuăm cu compilarea și instalarea folosind comenzile make
:
make make install
Verificați ca aceste comenzi să se execute fără erori. În acest moment, serverul web Apache a fost instalat cu suport SSL activat.
Obținerea unui Certificat SSL
Există mai multe metode pentru a genera și obține un certificat SSL semnat de o autoritate de certificare (CA).
Dacă doriți să implementați SSL pentru un server web intranet, de obicei, organizația dvs. are o echipă internă care se ocupă de emiterea certificatelor. În acest caz, trebuie să contactați echipa responsabilă. În continuare, va trebui să generați o cerere de semnare a certificatului (CSR), proces care se poate realiza cu OpenSSL.
Pentru securizarea unui site web accesibil publicului, puteți achiziționa un certificat de la furnizori precum VeriSign, GoDaddy, Namecheap sau ZeroSSL. Alternativ, puteți obține un certificat gratuit de la Let’s Encrypt.
Let’s Encrypt este un proiect colaborativ al Linux Foundation care oferă certificate SSL/TLS gratuite. Pentru acest exemplu, vom utiliza Let’s Encrypt pentru a obține un certificat pentru domeniul chandan.io.
Deși există mai multe metode de a genera un CSR, cea mai simplă pe care am găsit-o este utilizarea instrumentului online SSL for Free.
Introduceți adresa URL pe care doriți să o securizați și urmați instrucțiunile.
Verificați deținerea domeniului folosind una dintre metodele oferite și descărcați fișierele certificatului.
După finalizarea acestor pași, veți obține trei fișiere:
cheie
: Acesta este fișierul cheie privată, care nu trebuie divulgat public.Certificat
: Fișierul certificatului SSL propriu-zis pentru domeniul dvs.Ca_bundle
: Certificatul rădăcină/intermediar al autorității de certificare.
Transferați aceste fișiere pe serverul web; le vom folosi în pasul următor.
Configurarea SSL în Apache
Ultimul pas este configurarea serverului Apache pentru a accepta cereri prin HTTPS.
- Conectați-vă la serverul web Apache.
- Faceți o copie de rezervă a fișierului
httpd.conf
(locația implicită este/usr/local/apache2/conf/
). - Deschideți fișierul folosind un editor text (de exemplu,
vi
) și asigurați-vă că modulelemod_ssl
și fișierulhttpd-ssl.conf
sunt prezente și active (nu sunt comentate).
LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf
Vom utiliza fișierul httpd-ssl.conf
pentru a configura detaliile certificatului. Asigurați-vă că parametrii de mai jos sunt definiți corect:
SSLCertificateFile
: Calea către fișierul.crt
(certificat) descărcat anterior.SSLCertificateKeyFile
: Calea către fișierul cheie privată.SSLCertificateChainFile
: Calea către fișierulca_bundle.crt
.
Sfat: Puteți crea un nou folder numit ssl
și stoca acolo toate fișierele legate de certificate.
- Faceți o copie de rezervă a fișierului
httpd-ssl.conf
, dacă este necesar, și apoi folosiți un editor text pentru a-l modifica:
SSLCertificateFile "/usr/local/apache2/conf/ssl/certificate.crt" SSLCertificateChainFile "/usr/local/apache2/conf/ssl/ca_bundle.crt" SSLCertificateKeyFile "/usr/local/apache2/conf/ssl/private.key"
De asemenea, trebuie să configurați directiva ServerName
, care, de obicei, este numele de domeniu/URL-ul dvs.:
ServerName chandan.io
- Salvați fișierul și reporniți serverul web Apache:
cd /usr/local/apache2/bin ./apachectl stop ./apachectl start
În final, asigurați-vă că domeniul dvs. este mapat corect către adresa IP a serverului. Odată ce ați terminat, încercați să accesați domeniul folosind HTTPS.
După cum puteți vedea, domeniul chandan.io este accesibil prin HTTPS, cu certificatul pe care l-am configurat.
Pașii descriși sunt esențiali pentru configurarea unui certificat SSL. Rețineți că configurația SSL ar trebui optimizată pentru o securitate sporită. Înainte de a lansa site-ul, este recomandat să testați serverul web SSL/TLS pentru a vă asigura că nu există vulnerabilități.
Sperăm că acest articol v-a oferit o înțelegere clară despre cum să implementați un certificat SSL pe un server web Apache pentru a permite accesarea site-ului dvs. prin HTTPS.
V-a plăcut articolul? Nu ezitați să-l distribuiți și altora!