Linux Security - Securing Apache2
Cuprins:
- Cerințe preliminare
- Instalați Certbot
- Generați grupul puternic Dh (Diffie-Hellman)
- Obținerea unui certificat SSL Encrypt
- Reînnoire automată Let's Encrypt SSL certificate
- Concluzie
Let's Encrypt este o autoritate de certificare creată de Internet Security Research Group (ISRG). Oferă certificate SSL gratuite printr-un proces complet automat conceput pentru a elimina crearea manuală, validarea, instalarea și reînnoirea certificatelor.
Certificatele emise de Let’s Encrypt sunt valabile timp de 90 de zile de la data emiterii și sunt încredințate de toate browserele principale de astăzi.
Acest tutorial vă va ghida în procesul de obținere a unei versiuni gratuite Let's Encrypt folosind instrumentul certbot de pe Debian 9. Vom arăta, de asemenea, cum să configurați Apache pentru a utiliza noul certificat SSL și pentru a activa HTTP / 2.
Cerințe preliminare
Asigurați-vă că ați îndeplinit următoarele cerințe înainte de a continua cu acest tutorial:
- Autentificat ca utilizator cu privilegii sudo. Aveți un nume de domeniu îndreptat către IP-ul serverului dvs. public. Vom folosi exemple.com. Apache instalat. O gazdă virtuală apache pentru domeniul dvs. Puteți urma aceste instrucțiuni pentru detalii despre crearea unuia.
Instalați Certbot
Certbot este un instrument complet și ușor de utilizat, care poate automatiza sarcinile pentru obținerea și reînnoirea certificatelor Let's Encrypt SSL. Pachetul certbot este inclus în depozitele Debian implicite.
Actualizați lista de pachete și instalați pachetul certbot folosind următoarele comenzi:
sudo apt update
sudo apt install certbot
Generați grupul puternic Dh (Diffie-Hellman)
Schimbul de chei Diffie – Hellman (DH) este o metodă de a schimba în siguranță cheile criptografice pe un canal de comunicare nesecurizat.
Pentru a genera un nou set de parametri DH de 2048 biți, executați:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Dacă doriți, puteți modifica dimensiunea până la 4096 biți, dar în acest caz, generația poate dura mai mult de 30 de minute în funcție de entropia sistemului.
Obținerea unui certificat SSL Encrypt
Pentru a obține un certificat SSL pentru domeniul nostru, vom folosi pluginul Webroot care funcționează prin crearea unui fișier temporar pentru validarea domeniului solicitat în directorul
${webroot-path}/.well-known/acme-challenge
. Serverul Let's Encrypt face solicitări HTTP la fișierul temporar pentru a valida dacă domeniul solicitat se rezolvă la serverul unde rulează certificbot.
Pentru a fi mai simplu, vom face o hartă a tuturor cererilor HTTP pentru
.well-known/acme-challenge
către un singur director,
/var/lib/letsencrypt
.
Următoarele comenzi creează directorul și îl fac scris pentru serverul Apache.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp www-data /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
Pentru a evita duplicarea codului, creați următoarele două fragmente de configurații:
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff # Requires Apache >= 2.4 SSLCompression off SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(150000)" # Requires Apache >= 2.4.11 SSLSessionTickets Off SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
Fragmentul de mai sus folosește cipurile recomandate de Cipherli.st, permite OCSP Stapling, HTTP Strict Transport Security (HSTS) și aplică puține anteturi HTTP concentrate pe securitate.
Înainte de a activa fișierele de configurare, asigurați-vă că atât
mod_ssl
cât și
mod_ssl
sunt activate prin emiterea:
sudo a2enmod ssl
sudo a2enmod headers
Activați modulul HTTP / 2, care va face site-urile dvs. mai rapide și mai robuste:
sudo a2enmod
Activați fișierele de configurare SSL rulând următoarele comenzi:
sudo a2enconf letsencrypt
sudo a2enconf ssl-params
Reîncărcați configurația Apache pentru ca modificările să aibă efect:
sudo systemctl reload apache2
Utilizați instrumentul Certbot cu pluginul webroot pentru a obține fișierele de certificat SSL:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Dacă certificatul SSL este obținut cu succes, certificbot va imprima următorul mesaj:
IMPORTANT NOTES: IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire on 2019-01-17. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you lose your account credentials, you can recover through e-mails sent to [email protected]. - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
Acum că aveți fișierele de certificare, modificați configurația gazdei virtuale a domeniului după cum urmează:
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
Cu configurația de mai sus, forțăm HTTPS și redirecționăm de la www la versiunea non-www. Nu vă rugăm să reglați configurația în funcție de nevoile dvs.
Reîncărcați serviciul Apache pentru ca modificările să aibă efect:
sudo systemctl reload apache2
Deschideți site-ul dvs. utilizând
https://
și veți observa o pictogramă de blocare verde.

Reînnoire automată Let's Encrypt SSL certificate
Certificatele Let's Encrypt sunt valabile 90 de zile. Pentru a reînnoi automat certificatele înainte de expirare, pachetul certbot creează un cronjob care rulează de două ori pe zi și va reînnoi automat orice certificat cu 30 de zile înainte de expirarea acestuia.
După ce certificatul este reînnoit, trebuie să reîncărcăm serviciul Apache. Adăugați
--renew-hook "systemctl reload apache2"
la fișierul
/etc/cron.d/certbot
astfel încât să arate astfel:
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload apache2"
Pentru a testa procesul de reînnoire, utilizați comutatorul
--dry-run
:
sudo certbot renew --dry-run
Dacă nu există erori, înseamnă că procesul de reînnoire a avut succes.
Concluzie
În acest tutorial, ați utilizat certificatul de client Let's Encrypt, pentru a obține certificate SSL pentru domeniul dvs. De asemenea, ați creat fragmente Apache pentru a evita duplicarea codului și ați configurat Apache pentru a utiliza certificatele. La sfârșitul tutorialului, ați configurat un cronjob pentru reînnoirea automată a certificatelor.
apache debian hai sa criptam certbot sslAceastă postare este o parte din Cum se instalează LAMP Stack pe Debian 9.
Alte postări din această serie:
• Cum se instalează Apache pe Debian 9 • Cum se instalează PHP pe Debian 9 • Cum se configurează gazdele virtuale Apache pe Debian 9 • Cum se instalează MariaDB pe Debian 9 • Se securizează Apache cu ajutorul criptării pe Debian 9Protejați apache cu ajutorul criptării centos 7
În acest tutorial, vom acoperi pașii necesari pentru instalarea unui certificat gratuit Let's Encrypt SSL pe un server CentOS 7 care rulează Apache ca server web.
Protejați apache cu ajutorul criptării centos 8
Acest tutorial explică cum se instalează un certificat SSL gratuit Encrypt SSL pe CentOS 8 care rulează Apache ca server web. Vom folosi instrumentul certbot pentru a obține și reînnoi certificatele.
Protejați apache cu ajutorul criptării pe ubuntu 18.04
În acest tutorial, vom oferi instrucțiuni pas cu pas despre cum să vă securizați Apache cu Let's Encrypt folosind instrumentul certbot de pe Ubuntu 18.04.







