Konfigurer Apache med selvsigneret TLS/SSL-certifikat på Ubuntu 16.04

SSL og dets efterfølger TLS (Secure Sockets Layer / Transport Layer Security) tilføjer et lag af kryptering mellem klienten og serveren. Uden denne teknologi sendes data til serveren i almindelig tekst, hvilket giver tredjeparter mulighed for at læse alle oplysninger, der sendes og modtages af din server.

Denne vejledning vil lære dig, hvordan du opretter et SSL/TLS-certifikat og aktiverer det på Apache 2.4 på Ubuntu 16.04. Jeg går ud fra, at Apache allerede er sat op og kører. Hvis du vil lære, hvordan du installerer en LAMP-stak, kan du se dette Vultr-dokument .

Opmærksomhed

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.


Trin 1: Generering af certifikatet

  1. Lad os først oprette et sted at gemme filen.

    mkdir ~/certificates
    cd ~/certificates
    
  2. Generer CSR og privat nøgle.

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

    Den vil bede om oplysninger til certifikatanmodningen. Udfyld med de relevante oplysninger.

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

    Fælles navn skal være dit domænenavn eller serverens IP-adresse. Udfyld også din e-mail.

    Common Name (e.g. server FQDN or YOUR name) []: 203.0.113.122
    Email Address []:webmaster@example.com
    
  3. Flyt nu certifikatet til Apache-konfigurationsmappen.

    mkdir /etc/apache2/ssl
    mv ~/certificates/* /etc/apache2/ssl/.
    
  4. Certifikatet er klar! Dernæst vil vi forberede Apache til at arbejde med certifikatet.

Trin 2: Firewall-konfiguration

  1. Vi skal sørge for, at TCP-port 443 er åben. Denne port bruges i SSL-forbindelser i stedet for port 80. I denne vejledning vil vi bruge UFW.

  2. Sørg for, at UFW er aktiveret.

    sudo ufw enable
    
  3. Tillad nu de foruddefinerede Apache-indstillinger for firewallen.

    sudo ufw allow 'Apache Full'
    
  4. Ved at skrive " sudo ufw status" kan du se en liste over de aktuelle regler. Din konfiguration skal ligne denne:

    To                         Action      From
    --                         ------      ----
    Apache Full                ALLOW       Anywhere
    OpenSSH                    ALLOW       Anywhere
    Apache Full (v6)           ALLOW       Anywhere (v6)
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    
  5. Du bør også tillade OpenSSH her for fremtidige forbindelser.

    sudo ufw allow 'OpenSSH'
    

Trin 3: Apache virtuel værtskonfiguration

  1. Naviger til standard Apache site config mappe.

    sudo nano /etc/apache2/sites-available/default-ssl.conf
    
  2. Denne fil fortæller serveren, hvor den skal lede efter SSL-certifikatet. Med kommentarerne fjernet, skulle det se ud som følgende konfiguration.

    <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. Rediger denne linje:

    ServerAdmin email@example.net
    
  4. Tilføj dette lige under ServerAdminlinjen:

    ServerName ADD_YOUR_IP_OR_DOMAIN_NAME_HERE
    
  5. Rediger nu disse linjer med vores certifikatplacering:

    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
  6. Vores endelige fil skal ligne denne:

    <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. Gem og luk filen.

Trin 4: Aktivering af Apache SSL-modul

  1. Aktiver SSL-modulet ved at skrive:

    sudo a2enmod ssl
    
  2. Aktiver nu webstedet, vi lige har redigeret:

    sudo a2ensite default-ssl.conf
    
  3. Genstart Apache:

    sudo service apache2 restart
    
  4. Lad os få adgang til den nye sikre hjemmeside! Åbn den i din browser (sørg for at indtaste https:// ).

    https://YOUR_SERVER_IP
    

Din browser vil advare dig om, at certifikatet er ugyldigt, som vi forventede. Dette sker, fordi certifikatet ikke er underskrevet. Følg trinene fra din browser for at fortsætte til dit websted.

Trin 5: Omdiriger al HTTP-trafik til HTTPS (valgfrit)

  1. Åbn Apaches standard virtuelle værtsfil:

    nano /etc/apache2/sites-available/000-default.conf
    
  2. Tilføj denne linje i <VirtualHost *:80>tagget:

    Redirect / https://YOUR_SERVER_IP_OR_DOMAIN/
    
  3. Genindlæs Apache-konfiguration:

    sudo service apache2 reload
    

Al webstedstrafik vil nu automatisk omdirigere til HTTPS.

Efterlad en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere