Configureer Apache met zelfondertekend TLS / SSL-certificaat op Ubuntu 16.04

SSL en de opvolger TLS (Secure Sockets Layer / Transport Layer Security) voegen een versleutelingslaag toe tussen de client en de server. Zonder deze technologie worden gegevens in platte tekst naar de server gestuurd, zodat derden alle informatie die door uw server wordt verzonden en ontvangen, kunnen lezen.

Deze tutorial leert je hoe je een SSL / TLS-certificaat maakt en activeert op Apache 2.4 op Ubuntu 16.04. Ik neem aan dat Apache al is ingesteld en actief is. Als je wilt leren hoe je een LAMP-stack installeert, bekijk dan dit Vultr doc .

Aandacht

SSL / TLS-certificaten worden normaal gesproken gegenereerd door een vertrouwde CA (certificeringsinstantie). Door het zelf te genereren, bent u de ondertekenaar, wat betekent dat de browser niet kan verifiëren of de identiteit van het certificaat moet worden vertrouwd, en het zal de gebruiker waarschuwen. Hoewel het mogelijk is om deze waarschuwing te omzeilen, moeten openbare sites een certificaat gebruiken dat is ondertekend door een vertrouwde CA. Laten we versleutelen is een CA die gratis certificaten aanbiedt. U kunt leren hoe ze hun certificaat in Apache en Ubuntu 16.04 installeren hier .

Voor interne toepassingen kan het gebruik van een zelfondertekend certificaat geldig zijn, vooral als u geen domeinnaam heeft.


Stap 1: Het certificaat genereren

  1. Laten we eerst een plaats maken om het bestand op te slaan.

    mkdir ~/certificates
    cd ~/certificates
    
  2. Genereer CSR en privésleutel.

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

    Het zal om informatie vragen voor het certificaatverzoek. Voltooi met de juiste informatie.

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

    De algemene naam moet uw domeinnaam of het IP-adres van de server zijn. Vul ook uw e-mail in.

    Common Name (e.g. server FQDN or YOUR name) []: 203.0.113.122
    Email Address []:[email protected]
    
  3. Verplaats nu het certificaat naar de Apache-configuratiemap.

    mkdir /etc/apache2/ssl
    mv ~/certificates/* /etc/apache2/ssl/.
    
  4. Het certificaat is klaar! Vervolgens zullen we Apache voorbereiden om met het certificaat te werken.

Stap 2: Firewall-configuratie

  1. We moeten ervoor zorgen dat TCP-poort 443 open is. Deze poort wordt gebruikt in SSL-verbindingen in plaats van poort 80. In deze tutorial gebruiken we UFW.

  2. Zorg ervoor dat UFW is ingeschakeld.

    sudo ufw enable
    
  3. Sta nu de vooraf gedefinieerde Apache-instellingen toe voor de firewall.

    sudo ufw allow 'Apache Full'
    
  4. Door " sudo ufw status" te typen , kunt u een lijst met de huidige regels zien. Uw configuratie zou er ongeveer zo uit moeten zien:

    To                         Action      From
    --                         ------      ----
    Apache Full                ALLOW       Anywhere
    OpenSSH                    ALLOW       Anywhere
    Apache Full (v6)           ALLOW       Anywhere (v6)
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    
  5. U moet OpenSSH hier ook toestaan ​​voor toekomstige verbindingen.

    sudo ufw allow 'OpenSSH'
    

Stap 3: Apache virtuele hostconfiguratie

  1. Navigeer naar de standaard Apache-siteconfiguratiemap.

    sudo nano /etc/apache2/sites-available/default-ssl.conf
    
  2. Dit bestand vertelt de server waar hij het SSL-certificaat moet zoeken. Met de opmerkingen verwijderd, zou het eruit moeten zien als de volgende configuratie.

    <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. Bewerk deze regel:

    ServerAdmin [email protected]
    
  4. Voeg dit direct onder de ServerAdminregel toe:

    ServerName ADD_YOUR_IP_OR_DOMAIN_NAME_HERE
    
  5. Bewerk nu deze regels met onze certificaatlocatie:

    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
  6. Ons uiteindelijke bestand zou er ongeveer zo uit moeten zien:

    <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. Sla het bestand op en sluit het.

Stap 4: Apache SSL-module inschakelen

  1. Schakel de SSL-module in door te typen:

    sudo a2enmod ssl
    
  2. Schakel nu de site in die we zojuist hebben bewerkt:

    sudo a2ensite default-ssl.conf
    
  3. Start Apache opnieuw:

    sudo service apache2 restart
    
  4. Laten we naar de nieuwe beveiligde website gaan! Open het in uw browser (zorg ervoor dat u https: // typt ).

    https://YOUR_SERVER_IP
    

Uw browser zal u waarschuwen dat het certificaat ongeldig is, zoals we hadden verwacht. Dit gebeurt omdat het certificaat niet is ondertekend. Volg de stappen van uw browser om door te gaan naar uw site.

Stap 5: Leid al het HTTP-verkeer om naar HTTPS (optioneel)

  1. Open het Apache standaard virtuele hostbestand:

    nano /etc/apache2/sites-available/000-default.conf
    
  2. Voeg deze regel toe binnen de <VirtualHost *:80>tag:

    Redirect / https://YOUR_SERVER_IP_OR_DOMAIN/
    
  3. Apache-configuratie opnieuw laden:

    sudo service apache2 reload
    

Al het websiteverkeer wordt nu automatisch omgeleid naar HTTPS.



Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.