Android

Osigurajte apache uz šifriranje na centos 7

Hadoop Rack Awareness

Hadoop Rack Awareness

Sadržaj:

Anonim

Let's Encrypt je besplatna, automatizirana i otvorena potvrda autoriteta koju je razvila Internet Security Research Group (ISRG). Potvrde izdane od strane Let's Encrypt vrijede 90 dana od dana izdavanja i danas im vjeruju svi glavni preglednici.

U ovom ćemo udžbeniku opisati korake potrebne za instaliranje besplatnog šifriranja SSL certifikata na poslužitelj CentOS 7 koji pokreće Apache kao web poslužitelj. Koristićemo uslužni program certbot za dobivanje i obnavljanje certifikata Let's Šifriraj.

Preduvjeti

Prije nastavka s ovim vodičem osigurajte da ste ispunili sljedeće preduvjete:

  • Ime domene pokazuje na IP vašeg javnog poslužitelja. Koristit ćemo example.com .

Instalirajte sljedeće pakete koji su potrebni za SSL šifrirani web poslužitelj:

yum install mod_ssl openssl

Instalirajte Certbot

Certbot je alat koji pojednostavljuje postupak dobivanja SSL certifikata iz Let's Encrypt i automatsko omogućavanje HTTPS-a na vašem poslužitelju.

Paket certbota može se EPEL-u instalirati. Ako spremište EPEL nije instalirano na vašem sustavu, možete ga instalirati pomoću sljedeće naredbe:

sudo yum install epel-release

Nakon što je spremište EPEL omogućeno, instalirajte certbot paket upisivanjem:

sudo yum install certbot

Stvaranje snažne Dh (Diffie-Hellman) grupe

Razmjena ključeva Diffie-Hellman (DH) metoda je sigurne razmjene kriptografskih ključeva preko nezaštićenog komunikacijskog kanala. Stvorite novi set 2048 bitnih DH parametara za jačanje sigurnosti:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 Možete promijeniti veličinu do 4096 bita, ali u tom slučaju generacija može potrajati više od 30 minuta, ovisno o entropiji sustava.

Dobivanje šifriramo SSL certifikat Let's Šifriraj

Za dobivanje SSL certifikata za našu domenu koristit ćemo Webroot dodatak koji djeluje stvaranjem privremene datoteke za provjeru tražene domene u ${webroot-path}/.well-known/acme-challenge direktoriju ${webroot-path}/.well-known/acme-challenge . Poslužitelj Let's Encrypt postavlja HTTP zahtjeve u privremenu datoteku kako bi potvrdio da se zatražena domena rješava na poslužitelju na kojem se pokreće certbot.

Da bismo to pojednostavili, /var/lib/letsencrypt ćemo sve HTTP zahtjeve za .well-known/acme-challenge u jedan direktorij, /var/lib/letsencrypt .

Pokrenite sljedeće naredbe za stvaranje mape i učinite ga upisljivim za Apache server:

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp apache /var/lib/letsencrypt sudo chmod g+s /var/lib/letsencrypt sudo chgrp apache /var/lib/letsencrypt sudo chmod g+s /var/lib/letsencrypt

Da biste izbjegli dupliciranje koda, stvorite sljedeće dvije isječke konfiguracije:

/etc/httpd/conf.d/letsencrypt.conf

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 /etc/httpd/conf.d/ssl-params.conf

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

Gornji isječak koristi sječiće koje je preporučio Cipherli.st, omogućava OCSP spajanje, HTTP strogu transportnu sigurnost (HSTS) i nameće nekoliko HTTP zaglavlja usmjerenih na sigurnost.

Učitajte ponovo Apache konfiguraciju da bi promjene stupile na snagu:

sudo systemctl reload

Sada možemo pokrenuti alat Certbot s dodatkom webroot i dobiti datoteke SSL certifikata upisivanjem:

sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

Ako je SSL certifikat uspješno dobiven, certbot će ispisati sljedeću poruku:

IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2018-12-07. 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 like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:

CentOS 7 isporučuje se s Apache verzijom 2.4.6, koja ne uključuje SSLOpenSSLConfCmd direktivu. Ova je direktiva dostupna samo na Apacheu 2.4.8 kasnije i koristi se za konfiguriranje OpenSSL parametara kao što su Diffie-Hellmanova razmjena ključeva (DH).

Morat ćemo stvoriti novu kombiniranu datoteku pomoću šifriramo SSL certifikat Let's Šifriraj i generiranu DH datoteku. Da biste to učinili, upišite:

cat /etc/letsencrypt/live/example.com/cert.pem /etc/ssl/certs/dhparam.pem >/etc/letsencrypt/live/example.com/cert.dh.pem

Sada kada je sve postavljeno, uredite konfiguraciju virtualnog računala svog doma na sljedeći način:

/etc/httpd/conf.d/example.com.conf

ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration

S gornjom konfiguracijom, prisiljavamo HTTPS i preusmjeravamo s www na verziju koja nije www. Slobodno prilagođavajte konfiguraciju prema vašim potrebama.

Ponovno pokrenite Apache uslugu da bi promjene stupile na snagu:

sudo systemctl restart

Sada možete otvoriti svoju web stranicu pomoću https:// i primijetit ćete zelenu ikonu zaključavanja.

Automatska obnova Let's Šifriraj SSL certifikat

Neka šifriraju potvrde vrijede 90 dana. Da bismo automatski obnovili certifikate prije njihovog isteka, stvorit ćemo cronjob koji će se izvoditi dva puta dnevno i automatski obnavljati bilo koji certifikat 30 dana prije njegovog isteka.

Pokrenite naredbu crontab da biste stvorili novi cronjob koji će obnoviti certifikat, stvoriti novu kombiniranu datoteku, uključujući ključ DH i ponovno pokrenuti apache:

sudo crontab -e

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

Spremite i zatvorite datoteku.

Za testiranje postupka obnove možete upotrijebiti naredbu certbot nakon koje slijedi prekidač - sušenje --dry-run :

sudo certbot renew --dry-run

Ako nema pogrešaka, to znači da je proces obnove bio uspješan.

Zaključak

U ovom smo vodiču koristili certbot Let's Encrypt za preuzimanje SSL certifikata za vašu domenu. Također ste stvorili isječke Apache da izbjegnete dupliciranje koda i konfigurirali Apache za korištenje certifikata. Na kraju udžbenika postavili ste cronjob za automatsku obnovu certifikata.

apache centos hajmo šifrirati certbot ssl

Ovaj je post dio Instaliraj LAMP stack na CentOS 7 seriji.

Ostali postovi u ovoj seriji:

• Kako instalirati Apache na CentOS 7 • Instalirati MySQL na CentOS 7 • Kako postaviti virtualne hostove Apache na CentOS 7 • Osigurajte Apache pomoću šifriranja na CentOS 7