Dit artikel maakt deel uit van de Apache Server Guide-serie:

  • Apache beveiligen op Ubuntu - Deel 1
  • Apache beveiligen op Ubuntu - Deel 2
  • Apache-prestaties optimaliseren - deel 1
  • Apache-prestaties optimaliseren - deel 2
  • Op naam gebaseerde Virtualhost Apache instellen
  • IP en op poorten gebaseerde Virtualhost instellen in Apache
  • Hoe de wachtwoordbeveiliging van de webdirectory in Apache in te stellen
  • Apache-server instellen met SSL-ondersteuning op Ubuntu
  • Fail2ban instellen om Apache te beschermen tegen een DDOS-aanval
  • Hoe Webdav instellen met Apache op Ubuntu
  • Controleer Apache Web Server met Mod_status
  • Hoe te beschermen tegen DDoS met Mod_evasive op Apache Server

SSL is ook bekend als het Secure Socket Layer-protocol. Het is gemaakt door Netscape om transacties tussen webservers en browsers te beveiligen. SSL-protocol gebruikt een certificeringsinstantie (CA) om één of beide uiteinden van de transacties te identificeren. Alle communicatie die via reguliere HTTP-verbindingen wordt verzonden, is in platte tekst en elke hacker heeft toegang tot de verbinding tussen uw browser en de website en kan gevoelige informatie lezen, zoals creditcardgegevens of uw burgerservicenummer. SSL wordt gebruikt om gevoelige informatie via het internet versleuteld te houden, zodat de informatie voor iedereen onleesbaar wordt.

Zelfondertekend certificaat versus commercieel certificaat

Zelfondertekend certificaat wordt ondertekend door de eigenaar. Het wordt over het algemeen gebruikt voor het testen van lokale servers en ontwikkelomgeving. Hoewel zelfondertekende certificaten hetzelfde beveiligingsniveau bieden tussen website en browser, geven de meeste webbrowsers altijd een beveiligingswaarschuwing weer dat het websitecertificaat zelfondertekend is en niet kan worden vertrouwd, omdat het certificaat niet is ondertekend door de certificeringsinstantie.

Commercieel certificaat is een geautoriseerd certificaat dat is uitgegeven door een vertrouwde certificeringsinstantie. Getekend certificaat wordt meestal gebruikt in een productieomgeving.

In dit artikel ga ik uitleggen hoe je een zelf ondertekend SSL-certificaat voor Apache kunt maken waarmee je verkeer naar je Apache-webserver kunt versleutelen.

Configureer Apache om SSL te ondersteunen

Standaard wordt Openssl geïnstalleerd in Ubuntu 14.04. Deze module biedt SSL-ondersteuning voor Apache. Het is standaard uitgeschakeld, dus u moet eerst de SSL-module inschakelen.

U kunt de SSL-module inschakelen door het volgende uit te voeren:

 sudo a2enmod ssl 

Nadat u SSL hebt ingeschakeld, moet u de Apache-service opnieuw starten om de wijziging te herkennen.

 sudo service apache2 opnieuw opstarten 

Genereer een zelfondertekend certificaat

De eerste stap is het maken van certificaten. Voor testdoeleinden of voor kleine LAN's moet u een persoonlijke sleutel (ca.key) genereren met 2048 bit-codering.

Om dit te doen, voer:

 sudo openssl genrsa -out ca.key 2048 

Genereer vervolgens een certificaat ondertekeningsverzoek (ca.csr) met behulp van de volgende opdracht:

 sudo openssl req -nodes -new -key ca.key -out ca.csr 

Ten slotte, genereer een zelfondertekend certificaat (ca.crt) van het X509-type, geldig voor 365 sleutels.

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

Maak een map om de certificaatbestanden te plaatsen die we hebben gemaakt.

 sudo mkdir / etc / apache2 / ssl 

Kopieer vervolgens alle certificaatbestanden naar de map "/ etc / apache2 / ssl".

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

Configureer Apache om het SSL-certificaat te gebruiken:

Nu zijn alle certificaten klaar. Het volgende dat u moet doen, is de Apache instellen om het nieuwe certificaat weer te geven.

Hiervoor moet je SSL-ondersteuning inschakelen op het standaard virtuele hostbestand van Apache in de map /etc/apache2/sites-enable/ .

U kunt dit doen door het standaard virtuele host-configuratiebestand van Apache te bewerken.

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

Geef commentaar op alle regels door een "#" voor elke regel toe te voegen en voeg de volgende regels toe:

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

Sla het bestand op en sluit het en start Apache opnieuw.

 sudo /etc/init.d/apache2 opnieuw opstarten 

Dit zou je nieuwe virtuele host moeten inschakelen die gecodeerde inhoud zal dienen met behulp van het SSL-certificaat dat je hebt gemaakt.

Apache (HTTPS) -server testen:

Om de Apache (HTTPS) -webserver te verifiëren, opent u uw webbrowser en typt u het IP-adres van uw server (met "https: //", bijvoorbeeld: "https://192.168.1.227").

Er zou een fout moeten verschijnen in uw browser en u moet het certificaat handmatig accepteren. Het foutbericht wordt weergegeven omdat we een zelfondertekend certificaat gebruiken in plaats van een certificaat ondertekend door een certificaatautoriteit die de browser vertrouwt, en de browser kan de identiteit van de server waarmee u verbinding probeert te maken niet verifiëren. Zodra u een uitzondering toevoegt aan de identiteitsverificatie van de browser, ziet u een Ubuntu-testpagina voor uw nieuwe beveiligde site.

Conclusie

Nu hebt u SSL ingeschakeld op uw Apache-server. Dit zal helpen om de communicatie tussen uw Apache-server en clients te beveiligen. Als u een openbare site met SSL-ondersteuning wilt hosten, moet u een SSL-certificaat aanschaffen bij een vertrouwde certificeringsinstantie.