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 (Certificate Authority, CA), um ein Ende oder beide Enden der Transaktionen zu identifizieren. Alle über reguläre HTTP-Verbindungen gesendeten Mitteilungen erfolgen im Klartext. Jeder Hacker kann auf die Verbindung zwischen Ihrem Browser und der Website zugreifen und vertrauliche Informationen wie Kreditkartendaten 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 alle unlesbar werden.
Selbstsigniertes Zertifikat vs. kommerzielles Zertifikat
Selbstsigniertes Zertifikat ist von seinem Besitzer unterschrieben. Es wird im Allgemeinen zum Testen lokaler Server und der Entwicklungsumgebung verwendet. Obwohl selbstsignierte Zertifikate die gleiche Sicherheitsstufe zwischen Website und Browser bieten, zeigen die meisten Webbrowser immer eine Sicherheitswarnung an, dass das Website-Zertifikat selbstsigniert und nicht vertrauenswürdig ist, da es nicht von der Zertifizierungsstelle signiert ist.
Handelszertifikat 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 den Datenverkehr zu Ihrem Apache-Webserver verschlüsseln können.
Konfigurieren Sie Apache für die Unterstützung von SSL
Standardmäßig ist Openssl in Ubuntu 14.04 installiert. Dieses Modul bietet Apache SSL-Unterstützung. 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 restart
Generieren Sie ein selbstsigniertes Zertifikat
Der erste Schritt ist die Zertifikatserstellung. Zu Testzwecken 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
Generieren Sie dann eine Zertifikatsignierungsanforderung (ca.csr) mit dem folgenden Befehl:
sudo openssl req -nodes -new -key 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, um die von uns erstellten Zertifikatdateien abzulegen.
sudo mkdir /etc/apache2/ssl
Kopieren Sie anschließend alle Zertifikatdateien 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 müssen Sie den Apache so einrichten, dass das neue Zertifikat angezeigt wird.
Dazu müssen Sie die SSL-Unterstützung für die virtuelle Apache-Standardhostdatei aktivieren, die sich in der /etc/apache2/sites-enable/
Verzeichnis.
Sie können dies tun, indem Sie die Apache-Standardkonfigurationsdatei für den virtuellen Host bearbeiten.
sudo nano /etc/apache2/sites-enable/000-default.conf
Kommentieren Sie alle Zeilen aus, indem Sie vor jeder Zeile ein “#” einfügen und die folgenden Zeilen hinzufügen:
<VirtualHost *: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/apache2/ssl/ca.crt SSLCertificateKeyFile /etc/apache2/ssl/ca.key </VirtualHost>
Speichern und schließen Sie die Datei und starten Sie Apache neu.
sudo /etc/init.d/apache2 restart
Dies sollte Ihren neuen virtuellen Host aktivieren, der verschlüsselte Inhalte mit dem von Ihnen erstellten SSL-Zertifikat bereitstellt.
Testen des Apache (HTTPS) Servers:
Um den Apache-Webserver (HTTPS) zu überprüfen, öffnen Sie Ihren Webbrowser und geben Sie die IP-Adresse Ihres Servers 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 von einer Zertifizierungsstelle signierten Zertifikats verwenden, dem der Browser vertraut, und der Browser die Identität des Servers, zu dem Sie eine Verbindung herstellen möchten, nicht überprüfen kann. Sobald Sie der Identitätsprüfung des Browsers eine Ausnahme hinzugefügt haben, sollte eine Ubuntu-Testseite für Ihre neu sichere Site angezeigt werden.
Fazit
Jetzt haben Sie SSL auf Ihrem Apache-Server aktiviert. Dies hilft, die Kommunikation zwischen Ihrem Apache-Server und den 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.