Den här artikeln är en del av Apache Server Guide-serien:

  • Säkra Apache på Ubuntu - Del 1
  • Säkra Apache på Ubuntu - Del 2
  • Optimera Apache Performance - Del 1
  • Optimera Apache Performance - Del 2
  • Konfigurera namnbaserad Virtualhost Apache
  • Konfigurera IP och portbaserad Virtualhost i Apache
  • Så här ställer du in lösenordskyddswebbkatalogen i Apache
  • Ställa in Apache Server med SSL-support på Ubuntu
  • Konfigurera Fail2ban för att skydda Apache från ett DDOS-attack
  • Så här ställer du upp Webdav med Apache på Ubuntu
  • Övervaka Apache webbserver med Mod_status
  • Hur man skyddar mot DDoS med Mod_evasive på Apache Server

SSL är också känt som Secure Socket Layer-protokoll. Det skapades av Netscape för att säkra transaktioner mellan webbservrar och webbläsare. SSL-protokollet använder en certifikatmyndighet (CA) för att identifiera ena änden eller båda ändarna av transaktionerna. All kommunikation som skickas via vanliga HTTP-anslutningar finns i vanlig text och alla hacker kan komma åt anslutningen mellan din webbläsare och webbplatsen och läsa känslig information som kreditkortsuppgifter eller ditt personnummer. SSL används för att hålla känslig information skickad över Internet krypterad, så informationen blir oläslig för alla.

Självtecknat certifikat vs kommersiellt certifikat

Självtecknat certifikat är signerat av dess ägare. Det används allmänt för att testa lokala servrar och utvecklingsmiljöer. Även om självtecknade certifikat ger samma säkerhetsnivå mellan webbplats och webbläsare, visar de flesta webbläsare alltid ett säkerhetsmeddelande om att webbplatscertifikatet är självtecknat och inte kan lita på, eftersom det inte är signerat av certifikatmyndigheten.

Commercial Certificate är ett auktoriserat certifikat som utfärdats av en betrodd certifikatmyndighet. Signerat certifikat används mestadels i en produktionsmiljö.

I den här artikeln kommer jag att förklara hur man skapar ett självtecknat SSL-certifikat för Apache som låter dig kryptera trafik till din Apache-webbserver.

Konfigurera Apache för att stödja SSL

Som standard är Openssl installerad i Ubuntu 14.04. Den här modulen ger SSL-stöd till Apache. Den är avstängd som standard, så du måste aktivera SSL-modulen först.

Du kan aktivera SSL-modulen genom att köra:

 sudo a2enmod ssl 

När du har aktiverat SSL måste du starta om Apache-tjänsten för att ändringen ska kunna identifieras.

 sudo service apache2 omstart 

Skapa ett självtecknat certifikat

Det första steget är att skapa certifikat. För teständamål eller för små LAN måste du skapa en privat nyckel (ca.key) med 2048 bitars kryptering.

För att göra detta kör du:

 sudo openssl genrsa-out cakey 2048 

Generera sedan en certifikatsigneringsförfrågan (ca.csr) med följande kommando:

 sudo openssl req-noder -nyckel-knapp ca.key -out ca.csr 

Slutligen skapa ett självtecknat certifikat (ca.crt) av X509 typ som är giltigt för 365 nycklar.

 sudo openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt 

Skapa en katalog för att placera de certifikatfiler vi har skapat.

 sudo mkdir / etc / apache2 / ssl 

Kopiera sedan alla certifikatfiler till katalogen "/ etc / apache2 / ssl".

 sudo cp cacrt ca.key ca.csr / etc / apache2 / ssl / 

Konfigurera Apache att använda SSL-certifikatet:

Nu är alla certifikat redo. Nästa sak att göra är att ställa in Apache för att visa det nya certifikatet.

För detta måste du aktivera SSL-stöd på Apache standard virtuella värdfilen som finns i /etc/apache2/sites-enable/ directory.

Du kan göra detta genom att redigera Apache standard virtuella värdkonfigurationsfilen.

 sudo nano /etc/apache2/sites-enable/000-default.conf 

Kommentera alla rader genom att lägga till en "#" framför varje rad och lägg till följande rader:

 ServerAdmin webmaster @ localhost DocumentRoot / var / www / html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log kombinerad SSLEngine på SSLCertificateFile /etc/apache2/ssl/ca.crt SSLCertificateKeyFile / etc / apache2 / ssl /ca.key 

Spara och stäng filen och starta om Apache.

 sudo /etc/init.d/apache2 omstart 

Detta ska göra det möjligt för din nya virtuella värd som ska tjäna krypterat innehåll med det SSL-certifikat du skapade.

Testa Apache (HTTPS) Server:

För att verifiera Apache (HTTPS) webbservern, öppna din webbläsare och skriv din IP-adress för din server (med "https: //, " till exempel: "https://192.168.1.227").

Ett fel ska visas i din webbläsare, och du måste manuellt godkänna certifikatet. Felmeddelandet visas på grund av att vi använder ett självsignerat certifikat istället för certifikat signerat av en certifikatmyndighet som webbläsaren litar på och webbläsaren kan inte verifiera identiteten på servern som du försöker ansluta till. När du lägger till ett undantag till webbläsarens identitetsverifiering bör du se en Ubuntu-testsida för din nyligen säkra webbplats.

Slutsats

Nu har du SSL aktiverat på din Apache-server. Detta kommer att bidra till att säkerställa kommunikation mellan Apache-servern och klienterna. Om du vill vara värd för en offentlig webbplats med SSL-stöd måste du köpa ett SSL-certifikat från en betrodd certifikatmyndighet.