Configurați Apache cu certificat TLS / SSL autofirmat pe Ubuntu 16.04

SSL și succesorul său TLS (Secure Sockets Layer / Transport Layer Security) adaugă un strat de criptare între client și server. Fără această tehnologie, datele sunt trimise serverului în text simplu, permițând terților să citească toate informațiile trimise și primite de serverul dvs.

Acest tutorial vă va învăța cum să creați un certificat SSL / TLS și să îl activați pe Apache 2.4 pe Ubuntu 16.04. Presupun că Apache este deja configurat și funcționează. Dacă doriți să aflați cum să instalați un stack LAMP, consultați acest document Vultr .

Atenţie

Certificatele SSL / TLS sunt generate în mod normal de către un CA de încredere (autoritatea de certificare). Prin generarea dvs., veți fi semnatarul, ceea ce înseamnă că browserul nu va putea verifica dacă identitatea certificatului trebuie să fie de încredere și va avertiza utilizatorul. Deși este posibil să ocoliți această alertă, site-urile cu public ar trebui să utilizeze un certificat semnat de un CA de încredere. Hai să criptăm este o CA care oferă certificate gratuit. Puteți afla cum să instalați certificatul lor în Apache și Ubuntu 16.04 aici .

Pentru aplicațiile interne, utilizarea unui certificat auto-semnat poate fi valabilă, mai ales dacă nu aveți un nume de domeniu.


Pasul 1: Generarea certificatului

  1. În primul rând, hai să creăm un loc pentru stocarea fișierului.

    mkdir ~/certificates
    cd ~/certificates
    
  2. Generați CSR și cheie privată.

    openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
    

    Acesta va solicita informații pentru solicitarea certificatului. Completați cu informațiile corespunzătoare.

    Country Name (2 letter code) [AU]: US
    State or Province Name (full name) [Some-State]: FL
    Locality Name (eg, city) []: Miami
    Organization Name (eg, company) [My Company]: My Company
    Organizational Unit Name (eg, section) []:
    

    Numele comun ar trebui să fie numele dvs. de domeniu sau adresa IP a serverului. De asemenea, completați e-mailul dvs.

    Common Name (e.g. server FQDN or YOUR name) []: 203.0.113.122
    Email Address []:[email protected]
    
  3. Acum, mutați certificatul în folderul de configurare Apache.

    mkdir /etc/apache2/ssl
    mv ~/certificates/* /etc/apache2/ssl/.
    
  4. Certificatul este gata! În continuare, vom pregăti Apache pentru a lucra cu certificatul.

Pasul 2: configurație firewall

  1. Trebuie să ne asigurăm că portul TCP 443 este deschis. Acest port este utilizat în conexiunile SSL în loc de portul 80. În acest tutorial, vom folosi UFW.

  2. Asigurați-vă că UFW este activat.

    sudo ufw enable
    
  3. Acum permiteți setările Apache predefinite pentru firewall.

    sudo ufw allow 'Apache Full'
    
  4. Tastând " sudo ufw status", puteți vedea o listă cu regulile actuale. Configurația dvs. ar trebui să semene cu aceasta:

    To                         Action      From
    --                         ------      ----
    Apache Full                ALLOW       Anywhere
    OpenSSH                    ALLOW       Anywhere
    Apache Full (v6)           ALLOW       Anywhere (v6)
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    
  5. De asemenea, ar trebui să permiteți OpenSSH aici pentru conexiuni viitoare.

    sudo ufw allow 'OpenSSH'
    

Pasul 3: configurația gazdei virtuale Apache

  1. Navigați la directorul implicit de configurare a site-ului Apache.

    sudo nano /etc/apache2/sites-available/default-ssl.conf
    
  2. Acest fișier spune serverului unde să caute certificatul SSL. Cu comentariile eliminate, ar trebui să arate ca următoarea configurație.

    <IfModule mod_ssl.c>
      <VirtualHost _default_:443>
       ServerAdmin webmaster@localhost
    
       DocumentRoot /var/www/html
    
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
    
       SSLEngine on
    
       SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
       SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    
       <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
       </FilesMatch>
       <Directory /usr/lib/cgi-bin>
        SSLOptions +StdEnvVars
       </Directory>
    
     </VirtualHost>
    </IfModule>
    
  3. Editați această linie:

    ServerAdmin [email protected]
    
  4. Adăugați acest drept sub ServerAdminlinia:

    ServerName ADD_YOUR_IP_OR_DOMAIN_NAME_HERE
    
  5. Acum, editați aceste linii cu locația certificatului nostru:

    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
  6. Fișierul nostru final ar trebui să semene cu acesta:

    <IfModule mod_ssl.c>
     <VirtualHost _default_:443>
      ServerAdmin [email protected]
      ServerName 203.0.113.122
    
      DocumentRoot /var/www/html
    
      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined
    
      SSLEngine on
    
      SSLCertificateFile    /etc/apache2/ssl/apache.crt
      SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
      <FilesMatch "\.(cgi|shtml|phtml|php)$">
       SSLOptions +StdEnvVars
      </FilesMatch>
      <Directory /usr/lib/cgi-bin>
       SSLOptions +StdEnvVars
      </Directory>
    
     </VirtualHost>
    </IfModule>
    
  7. Salvați și închideți fișierul.

Pasul 4: Activarea modulului SSL Apache

  1. Activați modulul SSL tastând:

    sudo a2enmod ssl
    
  2. Acum activați site-ul pe care tocmai l-am editat:

    sudo a2ensite default-ssl.conf
    
  3. Reporniți Apache:

    sudo service apache2 restart
    
  4. Haideți să accesăm noul site securizat! Deschideți-l în browser (asigurați-vă că introduceți https: // ).

    https://YOUR_SERVER_IP
    

Browserul dvs. vă va avertiza că certificatul este nevalid, așa cum ne așteptam. Acest lucru se întâmplă deoarece certificatul nu este semnat. Urmați pașii oferiți de browserul dvs. pentru a continua pe site-ul dvs.

Pasul 5: Redirecționați tot traficul HTTP către HTTPS (opțional)

  1. Deschideți fișierul gazdă virtual Apache:

    nano /etc/apache2/sites-available/000-default.conf
    
  2. Adăugați această linie în <VirtualHost *:80>etichetă:

    Redirect / https://YOUR_SERVER_IP_OR_DOMAIN/
    
  3. Reîncărcați configurația Apache:

    sudo service apache2 reload
    

Tot traficul site-ului web va fi redirecționat automat către HTTPS.



Leave a Comment

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe