În acest tutorial vom învăța cum să ne securizăm Apache HTTP server cu TLS / SSL certificate oferite de Să criptăm în FreeBSD 11.x. De asemenea, vom aborda modul de automatizare a procesului de reînnoire a certificatului pentru Lets ’Encrypt.
Citește și: Instalați Let’s Encrypt for Nginx pe FreeBSD
TLS / SSL certificatele sunt utilizate de serverul web Apache pentru a cripta comunicația între nodurile finale sau mai obișnuite între server și client pentru a oferi securitate. Let’s Encrypt oferă certbot utilitar linie de comandă, care este o aplicație care vă poate facilita modul în care puteți obține certificate de încredere gratuit.
1. Înainte de a începe să instalați utilitarul certbot și să creați fișierul de configurare TSL pentru Apache, creați mai întâi două directoare distincte numite site-uri disponibile și activat de site-uri în directorul de configurare rădăcină Apache prin emiterea comenzilor de mai jos.
Scopul acestor două directoare este de a facilita gestionarea configurației de găzduire virtuală în sistem, fără a modifica Apache-ul principal httpd.conf fișier de configurare de fiecare dată când adăugăm o nouă gazdă virtuală.
# mkdir / usr / local / etc / apache24 / sites-available. # mkdir / usr / local / etc / apache24 / sites-enabled.
2. După ce ați creat ambele directoare, deschideți Apache httpd.conf fișier cu un editor de text și adăugați următoarea linie aproape de sfârșitul fișierului așa cum este ilustrat mai jos.
# nano /usr/local/etc/apache24/httpd.conf.
Adăugați următoarea linie:
IncludeOptional etc / apache24 / sites-enabled / *. Conf.
3. Apoi, activați TLS pentru Apache prin crearea următoarei fișiere noi numite 020_mod_ssl.conf în module.d director cu următorul conținut.
# nano /usr/local/etc/apache24/modules.d/020_mod_ssl.conf.
Adăugați următoarele linii în fișier 020_mod_ssl.conf.
Ascultă 443. SSLProtocol ALL -SSLv2 -SSLv3. SSLCipherSuite HIGH: MEDIUM:! ANULL:! MD5. SSLPassPhraseDialog încorporat. SSLSessionCacheTimeout 300.
4. Acum, decomentați SSL modul din /usr/local/etc/apache24/httpd.conf fișier eliminând hashtagul de la începutul următoarei linii, așa cum este ilustrat mai jos:
LoadModule ssl_module libexec / apache24 / mod_ssl.so.
5. Apoi, creați fișierul TLS fișier de configurare pentru domeniul dvs. din site-uri disponibile director, de preferință cu numele domeniului dvs., așa cum este prezentat în extrasul de mai jos:
# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf.
Adăugați următoarea configurație virtualhost în fișier bsd.lan-ssl.conf.
ServerName www.yourdomain.com ServerAlias yourdomain.com DocumentRoot "/ usr / local / www / apache24 / data /" SSLEngine on SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/cert.pem" SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem" SSLCertificateChainFile „/usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem” SSLOptions + StdEnvVars. SSLOptions + StdEnvVars. BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/var/log/apache/httpd-ssl_request.log" \ "% t% h% {SSL_PROTOCOL} x% {SSL_CIPHER} x \ "% r \"% b " Opțiuni Indexuri FollowSymLinks MultiViews #AllowOverride controlează directivele care pot fi plasate în fișierele .htaccess. AllowOverride Toți #Controls care pot obține lucruri din acest fișier server Necesită toate acordate ErrorLog "/var/log/apache/yourdomain.ssl-error.log" CustomLog "/var/log/apache/yourdomain.ssl-access_log" combinat
Asigurați-vă că înlocuiți variabila de nume de domeniu din Numele serverului, ServerAlias, Jurnal de erori, CustomLog declarații în consecință.
6. La pasul următor, lansați următoarea comandă pentru a instala certbot utilitate furnizată de Să criptăm, care va fi folosit pentru a obține Apache TSL certificate gratuite pentru domeniul dvs.
În timpul instalării certbot o serie de solicitări vor fi afișate pe ecran. Utilizați captura de ecran de mai jos pentru a configura certbot utilitate. De asemenea, compilarea și instalarea utilitarului certbot ar putea dura ceva timp, în funcție de resursele mașinii.
# cd / usr / ports / security / py-certbot. # face instalarea curată.
7. După terminarea procesului de compilare, lansați comanda de mai jos pentru a actualiza certbot utilitate și certbot dependențe necesare.
# pkg instalează py27-certbot. # pkg instalează py27-acme.
8. Pentru a genera un certificat pentru domeniul dvs., lansați comanda așa cum este ilustrat mai jos. Asigurați-vă că furnizați locația corectă webroot în care sunt stocate fișierele site-ului dvs. în sistemul de fișiere (DocumentRoot directivă din fișierul dvs. de configurare a domeniului) utilizând fișierul -w
steag. Dacă aveți mai multe subdomenii, adăugați-le pe toate cu -d
steag.
# certbot certonly --webroot -w / usr / local / www / apache24 / data / -d yourdomain.com -d www.yourdomain.com.
În timp ce obțineți certificatul, furnizați o adresă de e-mail pentru reînnoirea certificatului, apăsați pe a pentru a fi de acord cu termenii și condițiile Let’s Encrypt și n
pentru a nu partaja adresa de e-mail Let’s Encrypt partners.
Ieșire comandă Certbot
Salvarea jurnalului de depanare în /var/log/letsencrypt/letsencrypt.log. Introduceți adresa de e-mail (utilizată pentru reînnoirea urgentă și notificările de securitate) (Introduceți „c” la. Anulare):[e-mail protejat] Se pare că există probleme cu adresa respectivă. Introduceți adresa de e-mail (utilizată pentru. reînnoire urgentă și notificări de securitate) Dacă doriți cu adevărat să ignorați acest lucru, puteți. rulați clientul cu --register-unsafely-without-email, dar asigurați-vă că atunci. faceți backup cheii contului dvs. din / etc / letsencrypt / accounts (introduceți „c” pentru a anula):[e-mail protejat] Vă rugăm să citiți Termenii și condițiile la. https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. Trebuie sa fii de acord. pentru a vă înregistra la serverul ACME la. https://acme-v01.api.letsencrypt.org/directory. (A) gree / (C) ancel:A
Ați fi dispus să partajați adresa dvs. de e-mail cu Electronic Frontier Foundation, partener fondator al proiectului Let's Encrypt și organizația non-profit care dezvoltă Certbot? Am dori să vă trimitem e-mail despre EFF și despre munca noastră pentru a cripta web-ul, a-i proteja utilizatorii și a apăra drepturile digitale. (Da nu:n
Obținerea unui nou certificat Efectuarea următoarelor provocări: http-01 provocare pentru www.domain.com Utilizarea căii webroot / usr / local / www / apache24 / data pentru toate domeniile de neegalat. Se așteaptă verificarea... Curățarea provocărilor NOTE IMPORTANTE: - Felicitări! Certificatul și lanțul dvs. au fost salvate la /usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem. Certificatul dvs. va expira în data de 15.11.2017. Pentru a obține o versiune nouă sau modificată a acestui certificat în viitor, pur și simplu rulați certbot din nou. Pentru a reînnoi non-interactiv * toate * certificatele dvs., rulați „certbot renew” - acreditările contului dvs. au fost salvate în directorul de configurare Certbot la / usr / local / etc / letsencrypt. Ar trebui să faceți o copie de siguranță sigură a acestui folder acum. Acest director de configurare va conține, de asemenea, certificate și chei private obținute de Certbot, deci este ideal să faceți copii de rezervă regulate ale acestui folder. - Dacă vă place Certbot, vă rugăm să luați în considerare susținerea activității noastre prin: Donarea către ISRG / Let's Encrypt: https://letsencrypt.org/donate Donați către EFF: https://eff.org/donate-le
9. După ce ați obținut certificatele pentru domeniul dvs., puteți rula Comand pentru a enumera toate componentele certificatului (lanț, cheie privată, certificat) așa cum este prezentat în exemplul de mai jos.
# ls -al /usr/local/etc/letsencrypt/live/www.yourdomain.com/
10. Pentru a adăuga certificatele Let’s Encrypt pe site-ul dvs. web, deschideți fișierul de configurare apache pentru domeniul dvs. și actualizați următoarele rânduri pentru a reflecta calea certificatelor emise.
# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf.
Adăugați aceste linii de certificat TLS:
SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/cert.pem" SSLCertificateKeyFile „/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem” SSLCertificateChainFile „/usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem”
11. În cele din urmă, activați fișierul de configurare TLS, creând un link simbolic pentru fișierul dvs. de configurare TLS de domeniu activat de site-uri director, verificați configurațiile Apache pentru eventuale erori de sintaxă și, dacă sintaxa este OK, reporniți daemonul Apache prin emiterea comenzilor de mai jos.
# ln -sf /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf / usr / local / etc / apache24 / sites-enabled / # apachectl -t. # service apache24 reporniți.
12. Pentru a verifica dacă serviciul Apache ascultă HTTPS port 443, lansați următoarea comandă pentru a lista socketurile de rețea httpd.
# sockstat -4 | grep httpd.
13. Puteți naviga la adresa domeniului dvs. dintr-un browser prin protocolul HTTPS pentru a confirma că certificatele Let’s Encrypt sunt aplicate cu succes.
https://www.yourdomain.com.
14. Pentru a obține informații suplimentare despre certificatul Let’s Encrypt emis din linia de comandă, utilizați openssl comanda după cum urmează.
# openssl s_client -connect www.yourdomain.com: 443.
15. De asemenea, puteți verifica dacă traficul este criptat cu un certificat valid furnizat de Să criptăm CA de pe un dispozitiv mobil așa cum este ilustrat în captura de ecran mobilă de mai jos.
Asta e tot! Clienții pot acum să vă viziteze site-ul în siguranță, deoarece traficul care circulă între server și browserul clientului este criptat. Pentru sarcini mai complexe referitoare la utilitarul certbot vizitați următorul link: https://certbot.eff.org/