Konfigurieren Sie Apache mit TLS/SSL-Zertifikat Ubuntu 18

Zur Sicherung der Datenübertragung zwischen Client und Server werden TLS (Secure Socket Layer) und SSL (Secure Socket Layer) verwendet. Diese Zertifikate fügen eine Sicherheitsebene hinzu, sodass die Daten, die zuvor in Form von Klartext gesendet wurden, von jedem Dritten analysiert werden können. Dieses Tutorial führt Sie zum Erstellen und Aktivieren von TLS/SSL-Zertifikaten auf dem Apache-Server unter Ubuntu 18.04.

Wenn Sie es selbst erstellen, sind Sie der Unterzeichner und der Browser überprüft die Identität nicht. Außerdem wird der Benutzer über die Gültigkeit des Zertifikats gewarnt. Es besteht die Möglichkeit, das Zertifikat zu umgehen. Öffentlich zugängliche Websites müssen ein Zertifikat einer vertrauenswürdigen Zertifizierungsstelle verwenden.

Voraussetzungen:

  • Apache-Server konfiguriert und installiert

Schritt 1: Zertifikat erstellen

  1. Erstellen Sie ein Verzeichnis zum Speichern der Datei
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ mkdir ~/certificates
$ cd ~/certificates
$ mkdir ~/certificates
$ cd ~/certificates
        $ mkdir ~/certificates
        $ cd ~/certificates

2. Generieren Sie mit dem folgenden Befehl eine CSR und einen privaten Schlüssel

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ openssl req -x509 -newkey rsa: 4096 -keyout apache. Key -Out-Apache. crt -Tage 365 -Knoten
$ openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
$ openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes

Nach erfolgreicher Ausführung des Befehls werden Sie nach den Informationen zur Zertifikatsanforderung gefragt. Vervollständigen Sie es mit den entsprechenden Informationen.

Ländername (2-Buchstaben-Code) [AU]:
Name des US-Bundesstaates oder der Provinz (vollständiger Name) [Some-State]: FL
Ortsname (z. B. Stadt) []: Miami
Organisationsname (z. B. Firma) [Mein Unternehmen]:
Name der Organisationseinheit meines Unternehmens (z. B. Abschnitt) []:

Der allgemeine Name ist Ihr Domänenname oder die Server-IP-Adresse.

Allgemeiner Name (z. B. Server-FQDN oder IHR Name) []: 192.168.2.3
E-Mail-Adresse []:dummy@example.com

3. Verschieben Sie nun das Zertifikat mit den folgenden Befehlen in denselben Ordner, den Sie erstellt haben

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ mkdir /etc/apache2/ssl
$ mv ~/certificates/* /etc/apache2/ssl/.
$ mkdir /etc/apache2/ssl
$ mv ~/certificates/* /etc/apache2/ssl/.
$ mkdir /etc/apache2/ssl
$ mv ~/certificates/* /etc/apache2/ssl/.

4. Wir sind mit der Erstellung des Zertifikats fertig und sorgen nun dafür, dass das Zertifikat mit Apache funktioniert.

Schritt 2: Konfigurieren der Firewall

  1.  Stellen Sie sicher, dass der TCP-Port 443 geöffnet ist. Anstelle von Port 80 verwendet SSL Port 443. Wir werden Uncomplicated Firewall (UFW) verwenden.
  2. Um UFW zu aktivieren, verwenden Sie den folgenden Befehl
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo ufw aktivieren
$ sudo ufw enable
$ sudo ufw enable
  1. Erlauben Sie die vordefinierten Apache-Einstellungen für die Firewall mit dem folgenden Befehl
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo ufw erlauben ‘Apache Full’
$ sudo ufw allow ‘Apache Full’
$ sudo ufw allow 'Apache Full'
  1. Sie können die Liste der aktuellen Regeln mit dem folgenden Befehl überprüfen.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo ufw-Status
$ sudo ufw status
$ sudo ufw status

Die Konfiguration sollte etwa so aussehen:

Zur Aktion von
— —— —-
Apache Full ALLOW Anywhere
OpenSSH ALLOW Anywhere
Apache Full (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)

  1. Um zukünftige Verbindungen zu ermöglichen, erlauben Sie OpenSSH
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo ufw erlauben ‘OpenSSH’
$ sudo ufw allow ‘OpenSSH’
$ sudo ufw allow 'OpenSSH'

Schritt 3: Konfiguration des virtuellen Apache-Hosts

  1. Navigieren Sie mit dem folgenden Befehl zum Standardverzeichnis für die Apache-Site-Konfiguration
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo nano /etc/apache2/sites-available/default-ssl. conf
$ sudo nano /etc/apache2/sites-available/default-ssl.conf
$ sudo nano /etc/apache2/sites-available/default-ssl.conf


Diese Konfigurationsdatei teilt dem Server mit, wo sich das SSL-Zertifikat befindet. Es sollte so aussehen:

<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 kombiniert

SSLEngine eingeschaltet

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>
 1. Bearbeiten Sie Folgendes: ServerAdmin webmaster@localhost wie folgt:

ServerAdmin email@example.net

  1. Fügen Sie dies direkt unter der ServerAdmin-Zeile hinzu:

Servername ADD_YOUR_IP_OR_DOMAIN_NAME_HERE

  1. Bearbeiten Sie nun diese Zeilen mit unserem Zertifikatsstandort:

SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key


Unsere Datei sollte so aussehen:

<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 kombiniert

SSLEngine eingeschaltet

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>

  1. Speichern Sie die Datei und schließen Sie sie.

Schritt 4: Aktivieren Sie das Apache SSL-Modul

  1. Aktivieren Sie das SSL-Modul mit dem folgenden Befehl
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo a2enmod ssl
$ sudo a2enmod ssl
$ sudo a2enmod ssl
  1. Aktivieren Sie nun die Site, die wir gerade bearbeitet haben:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo a2ensite default-ssl. conf
$ sudo a2ensite default-ssl.conf
$ sudo a2ensite default-ssl.conf
  1. Apache neu starten:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo service apache2 neu starten
$ sudo service apache2 restart
$ sudo service apache2 restart
  1. Die Website ist jetzt sicher. Rufen Sie sie über die folgende Adresse im Browser auf

https://IHR_SERVER_IP

Da der Browser das Zertifikat als ungültig einsieht, wie in der Einleitung erläutert. Weil das Zertifikat nicht signiert ist. Befolgen Sie die Schritte entsprechend Ihrem Browser, um fortzufahren.

Schauen Sie sich diese Top 3 der Linux-Hosting-Dienste an

HostArmada
5,0

716 Benutzerbewertungen

2,49 $ /Monat
Startpreis

Besuchen Sie HostArmada

Bewertung basierend auf Expertenbewertung
  • Benutzerfreundlich
    4.5
  • Unterstützung
    4.5
  • Merkmale
    4.5
  • Zuverlässigkeit
    4.5
  • Preisgestaltung
    4,0
Hostinger
4.6

2.435 Nutzerbewertungen

2,99 $ /Monat
Startpreis

Besuchen Sie Hostinger

Bewertung basierend auf Expertenbewertung
  • Benutzerfreundlich
    4.7
  • Unterstützung
    4.7
  • Merkmale
    4.8
  • Zuverlässigkeit
    4.8
  • Preisgestaltung
    4.7
FastComet
4.8

1.588 Nutzerbewertungen

1,79 $ /Monat
Startpreis

Besuchen Sie FastComet

Bewertung basierend auf Expertenbewertung
  • Benutzerfreundlich
    4.7
  • Unterstützung
    5,0
  • Merkmale
    4.8
  • Zuverlässigkeit
    4.5
  • Preisgestaltung
    5,0