Konfigurirajte Apache sa samopotpisanim TLS/SSL certifikatom na Ubuntu 16.04

SSL i njegov nasljednik TLS (Secure Sockets Layer / Transport Layer Security) dodaju sloj enkripcije između klijenta i poslužitelja. Bez ove tehnologije, podaci se šalju na poslužitelj u obliku običnog teksta, što trećim stranama omogućuje čitanje svih informacija koje vaš poslužitelj šalje i prima.

Ovaj vodič će vas naučiti kako stvoriti SSL/TLS certifikat i aktivirati ga na Apache 2.4 na Ubuntu 16.04. Pretpostavljam da je Apache već postavljen i radi. Ako želite naučiti kako instalirati LAMP stog, pogledajte ovaj Vultr dokument .

Pažnja

SSL/TLS certificates are normally generated by a trusted CA (certificate authority). By generating it yourself, you will be the signer, meaning the browser won't be able to verify whether the identity of the certificate should be trusted, and it will warn the user. Although it is possible to bypass this alert, public-facing sites should be using a certificate signed by a trusted CA. Let's encrypt is a CA that offers certificates for free. You can learn how to install their certificate in Apache and Ubuntu 16.04 here.

For internal applications, using a self-signed certificate might be valid, especially if you don't have a domain name.


Korak 1: Generiranje certifikata

  1. Prvo, stvorimo mjesto za pohranu datoteke.

    mkdir ~/certificates
    cd ~/certificates
    
  2. Generirajte CSR i privatni ključ.

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

    Tražit će informacije za zahtjev za certifikat. Dopunite odgovarajućim informacijama.

    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) []:
    

    Uobičajeni naziv trebao bi biti naziv vaše domene ili IP adresa poslužitelja. Također, ispunite svoj email.

    Common Name (e.g. server FQDN or YOUR name) []: 203.0.113.122
    Email Address []:webmaster@example.com
    
  3. Sada premjestite certifikat u Apache konfiguracijsku mapu.

    mkdir /etc/apache2/ssl
    mv ~/certificates/* /etc/apache2/ssl/.
    
  4. Certifikat je spreman! Zatim ćemo pripremiti Apache za rad s certifikatom.

Korak 2: Konfiguracija vatrozida

  1. Moramo biti sigurni da je TCP port 443 otvoren. Ovaj port se koristi u SSL vezama umjesto porta 80. U ovom vodiču koristit ćemo UFW.

  2. Provjerite je li UFW omogućen.

    sudo ufw enable
    
  3. Sada dopustite unaprijed definirane postavke Apachea za vatrozid.

    sudo ufw allow 'Apache Full'
    
  4. Upisivanjem " sudo ufw status", možete vidjeti popis trenutnih pravila. Vaša bi konfiguracija trebala izgledati ovako:

    To                         Action      From
    --                         ------      ----
    Apache Full                ALLOW       Anywhere
    OpenSSH                    ALLOW       Anywhere
    Apache Full (v6)           ALLOW       Anywhere (v6)
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    
  5. Također biste trebali dopustiti OpenSSH ovdje za buduće veze.

    sudo ufw allow 'OpenSSH'
    

Korak 3: Apache konfiguracija virtualnog hosta

  1. Idite na zadani direktorij konfiguracije web-mjesta Apache.

    sudo nano /etc/apache2/sites-available/default-ssl.conf
    
  2. Ova datoteka govori poslužitelju gdje tražiti SSL certifikat. S uklonjenim komentarima, trebao bi izgledati kao sljedeća konfiguracija.

    <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. Uredite ovaj redak:

    ServerAdmin email@example.net
    
  4. Dodajte ovo odmah ispod ServerAdmincrte:

    ServerName ADD_YOUR_IP_OR_DOMAIN_NAME_HERE
    
  5. Sada uredite ove retke s našom lokacijom certifikata:

    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
  6. Naša konačna datoteka trebala bi izgledati ovako:

    <IfModule mod_ssl.c>
     <VirtualHost _default_:443>
      ServerAdmin email@example.net
      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. Spremite i zatvorite datoteku.

Korak 4: Omogućavanje Apache SSL modula

  1. Omogućite SSL modul upisivanjem:

    sudo a2enmod ssl
    
  2. Sada omogućite stranicu koju smo upravo uredili:

    sudo a2ensite default-ssl.conf
    
  3. Ponovno pokrenite Apache:

    sudo service apache2 restart
    
  4. Pristupimo novoj sigurnoj web stranici! Otvorite ga u svom pregledniku (uvjerite se da ste upisali https:// ).

    https://YOUR_SERVER_IP
    

Vaš preglednik će vas upozoriti da je certifikat nevažeći, kao što smo očekivali. To se događa jer certifikat nije potpisan. Slijedite korake koje nudi vaš preglednik da biste nastavili na svoju stranicu.

Korak 5: preusmjerite sav HTTP promet na HTTPS (izborno)

  1. Otvorite zadanu datoteku virtualnog hosta Apache:

    nano /etc/apache2/sites-available/000-default.conf
    
  2. Dodajte ovaj redak unutar <VirtualHost *:80>oznake:

    Redirect / https://YOUR_SERVER_IP_OR_DOMAIN/
    
  3. Ponovno učitaj Apache konfiguraciju:

    sudo service apache2 reload
    

Sav promet web stranice sada će se automatski preusmjeravati na HTTPS.

Ostavite komentar

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više