Dieser Artikel ist Teil der Apache Server Guide-Reihe:

  • Sicherung von Apache auf Ubuntu - Teil 1
  • Sicherung von Apache auf Ubuntu - Teil 2
  • Apache-Performance optimieren - Teil 1
  • Apache Performance optimieren - Teil 2
  • Einrichten von namensbasiertem Virtualhost Apache
  • Einrichten von IP und Port-Based Virtualhost in Apache
  • So richten Sie das Kennwortschutz-Webverzeichnis in Apache ein
  • Einrichten von Apache Server mit SSL-Unterstützung unter Ubuntu
  • Einrichten von Fail2ban, um Apache vor einem DDOS-Angriff zu schützen
  • Wie man Webdav mit Apache auf Ubuntu einrichtet
  • Überwachen Sie Apache Web Server mit Mod_status
  • So schützen Sie sich gegen DDoS mit Mod_evasive auf Apache Server

SSL wird auch als Secure Socket Layer-Protokoll bezeichnet. Es wurde von Netscape erstellt, um Transaktionen zwischen Webservern und Browsern zu sichern. Das SSL-Protokoll verwendet eine Zertifizierungsstelle, um ein Ende oder beide Enden der Transaktionen zu identifizieren. Alle Kommunikationen, die über normale HTTP-Verbindungen gesendet werden, sind im Klartext, und jeder Hacker kann auf die Verbindung zwischen Ihrem Browser und der Website zugreifen und vertrauliche Informationen wie Kreditkartendetails oder Ihre Sozialversicherungsnummer lesen. SSL wird verwendet, um vertrauliche Informationen, die über das Internet gesendet werden, verschlüsselt zu halten, sodass die Informationen für jeden unlesbar werden.

Selbstsigniertes Zertifikat vs. Handelszertifikat

Das selbstsignierte Zertifikat wird von seinem Besitzer signiert. Es wird im Allgemeinen zum Testen von lokalen Servern und der Entwicklungsumgebung verwendet. Obwohl selbstsignierte Zertifikate das gleiche Sicherheitsniveau zwischen Website und Browser bieten, zeigen die meisten Webbrowser immer eine Sicherheitswarnung an, dass das Websitezertifikat selbstsigniert ist und nicht vertrauenswürdig ist, da es nicht von der Zertifizierungsstelle signiert ist.

Das kommerzielle Zertifikat ist ein autorisiertes Zertifikat, das von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt wurde. Das signierte Zertifikat wird hauptsächlich in einer Produktionsumgebung verwendet.

In diesem Artikel werde ich erklären, wie Sie ein selbstsigniertes SSL-Zertifikat für Apache erstellen, mit dem Sie Datenverkehr zu Ihrem Apache-Webserver verschlüsseln können.

Konfigurieren Sie Apache zur Unterstützung von SSL

Standardmäßig ist Openssl in Ubuntu 14.04 installiert. Dieses Modul bietet SSL-Unterstützung für Apache. Es ist standardmäßig deaktiviert, daher müssen Sie zuerst das SSL-Modul aktivieren.

Sie können das SSL-Modul aktivieren, indem Sie Folgendes ausführen:

 sudo a2enmod ssl 

Nachdem Sie SSL aktiviert haben, müssen Sie den Apache-Dienst neu starten, damit die Änderung erkannt wird.

 sudo service apache2 neustarten 

Generieren Sie ein selbstsigniertes Zertifikat

Der erste Schritt ist die Zertifikatserstellung. Für Testzwecke oder für kleine LANs müssen Sie einen privaten Schlüssel (ca.key) mit 2048-Bit-Verschlüsselung generieren.

Führen Sie dazu Folgendes aus:

 sudo openssl genrsa-out ca.key 2048 

Erstellen Sie dann eine Zertifikatsignierungsanforderung (ca.csr) mit dem folgenden Befehl:

 sudo openssl req -nodes -new -Schlüssel ca.key -out ca.csr 

Zuletzt generieren Sie ein selbstsigniertes Zertifikat (ca.crt) vom Typ X509, das für 365 Schlüssel gültig ist.

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

Erstellen Sie ein Verzeichnis zum Ablegen der von uns erstellten Zertifikatsdateien.

 sudo mkdir / etc / apache2 / ssl 

Kopieren Sie als Nächstes alle Zertifikatsdateien in das Verzeichnis "/ etc / apache2 / ssl".

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

Konfigurieren Sie Apache für die Verwendung des SSL-Zertifikats:

Jetzt sind alle Zertifikate fertig. Als nächstes muss Apache eingerichtet werden, um das neue Zertifikat anzuzeigen.

Dazu müssen Sie die SSL-Unterstützung für die standardmäßige virtuelle Host-Datei Apache im Verzeichnis /etc/apache2/sites-enable/ .

Sie können dies tun, indem Sie die Standardkonfigurationsdatei des Apache-Standardhosts bearbeiten.

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

Kommentieren Sie alle Zeilen durch Hinzufügen eines "#" vor jeder Zeile und fügen Sie die folgenden Zeilen hinzu:

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

Speichern und schließen Sie die Datei und starten Sie Apache neu.

 sudo /etc/init.d/apache2 neustarten 

Dies sollte Ihren neuen virtuellen Host aktivieren, der verschlüsselten Inhalt mit dem von Ihnen erstellten SSL-Zertifikat bereitstellt.

Testen des Apache (HTTPS) Servers:

Um den Apache (HTTPS) -Webserver zu überprüfen, öffnen Sie Ihren Webbrowser und geben Sie Ihre Server-IP-Adresse ein (mit "https: //", zum Beispiel: "https://192.168.1.227").

In Ihrem Browser sollte ein Fehler angezeigt werden, und Sie müssen das Zertifikat manuell akzeptieren. Die Fehlermeldung wird angezeigt, weil wir ein selbstsigniertes Zertifikat anstelle eines Zertifikats verwenden, das von einer vertrauenswürdigen Zertifizierungsstelle signiert wurde, und der Browser die Identität des Servers, mit dem Sie eine Verbindung herstellen möchten, nicht überprüfen kann. Sobald Sie der Identitätsprüfung des Browsers eine Ausnahme hinzufügen, sollten Sie eine Ubuntu-Testseite für Ihre neu gesicherte Site sehen.

Fazit

Jetzt haben Sie SSL auf Ihrem Apache-Server aktiviert. Dies wird dazu beitragen, die Kommunikation zwischen Ihrem Apache-Server und Clients zu sichern. Wenn Sie eine öffentliche Site mit SSL-Unterstützung hosten möchten, müssen Sie ein SSL-Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle erwerben.