Konfigurirajte Apache s samopodpisanim TLS/SSL certifikatom v Ubuntu 16.04

SSL in njegov naslednik TLS (Secure Sockets Layer / Transport Layer Security) dodata sloj šifriranja med odjemalcem in strežnikom. Brez te tehnologije se podatki pošljejo strežniku v golem besedilu, kar tretjim osebam omogoča branje vseh informacij, ki jih pošlje in prejme vaš strežnik.

Ta vadnica vas bo naučila, kako ustvariti potrdilo SSL/TLS in ga aktivirati v Apache 2.4 na Ubuntu 16.04. Predvidevam, da je Apache že nastavljen in deluje. Če se želite naučiti, kako namestiti sklad LAMP, si oglejte ta dokument Vultr .

Pozor

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.


1. korak: Ustvarjanje potrdila

  1. Najprej ustvarimo mesto za shranjevanje datoteke.

    mkdir ~/certificates
    cd ~/certificates
    
  2. Ustvari CSR in zasebni ključ.

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

    Zahteval bo podatke za zahtevo za potrdilo. Dopolnite z ustreznimi informacijami.

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

    Splošno ime mora biti ime vaše domene ali naslov IP strežnika. Prav tako izpolnite svoj e-poštni naslov.

    Common Name (e.g. server FQDN or YOUR name) []: 203.0.113.122
    Email Address []:webmaster@example.com
    
  3. Zdaj premaknite potrdilo v konfiguracijsko mapo Apache.

    mkdir /etc/apache2/ssl
    mv ~/certificates/* /etc/apache2/ssl/.
    
  4. Potrdilo je pripravljeno! Nato bomo pripravili Apache za delo s certifikatom.

2. korak: Konfiguracija požarnega zidu

  1. Prepričati se moramo, da so vrata TCP 443 odprta. Ta vrata se uporabljajo v povezavah SSL namesto vrat 80. V tej vadnici bomo uporabljali UFW.

  2. Prepričajte se, da je UFW omogočen.

    sudo ufw enable
    
  3. Zdaj dovolite vnaprej določene nastavitve Apache za požarni zid.

    sudo ufw allow 'Apache Full'
    
  4. Če vnesete " sudo ufw status", si lahko ogledate seznam trenutnih pravil. Vaša konfiguracija bi morala biti podobna tej:

    To                         Action      From
    --                         ------      ----
    Apache Full                ALLOW       Anywhere
    OpenSSH                    ALLOW       Anywhere
    Apache Full (v6)           ALLOW       Anywhere (v6)
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    
  5. Tukaj morate dovoliti tudi OpenSSH za prihodnje povezave.

    sudo ufw allow 'OpenSSH'
    

3. korak: Konfiguracija navideznega gostitelja Apache

  1. Pomaknite se do privzetega konfiguracijskega imenika mesta Apache.

    sudo nano /etc/apache2/sites-available/default-ssl.conf
    
  2. Ta datoteka pove strežniku, kje naj poišče potrdilo SSL. Ko so komentarji odstranjeni, bi morala izgledati kot naslednja 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. Uredi to vrstico:

    ServerAdmin email@example.net
    
  4. Dodajte to tik pod ServerAdminvrstico:

    ServerName ADD_YOUR_IP_OR_DOMAIN_NAME_HERE
    
  5. Zdaj uredite te vrstice z lokacijo našega potrdila:

    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
  6. Naša končna datoteka bi morala biti podobna tej:

    <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. Shranite in zaprite datoteko.

4. korak: Omogočanje modula Apache SSL

  1. Omogočite modul SSL tako, da vnesete:

    sudo a2enmod ssl
    
  2. Zdaj omogočite spletno mesto, ki smo ga pravkar uredili:

    sudo a2ensite default-ssl.conf
    
  3. Znova zaženite Apache:

    sudo service apache2 restart
    
  4. Dostopimo do nove varne spletne strani! Odprite ga v brskalniku (vtipkajte https:// ).

    https://YOUR_SERVER_IP
    

Vaš brskalnik vas bo opozoril, da potrdilo ni veljavno, kot smo pričakovali. To se zgodi, ker potrdilo ni podpisano. Sledite korakom, ki jih ponuja vaš brskalnik, da nadaljujete na svoje spletno mesto.

5. korak: preusmerite ves promet HTTP na HTTPS (izbirno)

  1. Odprite privzeto datoteko virtualnega gostitelja Apache:

    nano /etc/apache2/sites-available/000-default.conf
    
  2. Dodajte to vrstico znotraj <VirtualHost *:80>oznake:

    Redirect / https://YOUR_SERVER_IP_OR_DOMAIN/
    
  3. Ponovno naložite konfiguracijo Apache:

    sudo service apache2 reload
    

Ves promet spletnega mesta bo zdaj samodejno preusmerjen na HTTPS.

Vodniki za Linux, varnost, Ubuntu, spletni strežniki

Pusti komentar

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več