GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Meistern Sie selbstsignierte Zertifikate unter Windows und Linux

In der IT-Welt ist die Sicherung Ihrer Infrastrukturanwendungen und Domänen von entscheidender Bedeutung. Und um das ideale Sicherheitsniveau zu erreichen, benötigen Sie ein SSL-Zertifikat. Aber wie bekommt man ein SSL-Zertifikat? Eine der einfachsten und kostengünstigsten Möglichkeiten besteht darin, selbstsignierte Zertifikate auf Ihren Systemen zu erstellen.

Selbstsignierte Zertifikate sind Public-Key-Zertifikate, die Benutzer selbst generieren können, anstatt von einer Zertifizierungsstelle ausgestellt zu werden. Und in diesem Tutorial erfahren Sie, wie Sie ein selbstsigniertes Zertifikat sowohl auf Windows- als auch auf Linux-Computern (kostenlos) generieren.

Lesen Sie weiter und sichern Sie Ihre Apps und Infrastruktur!

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben:

  • Ein Windows 10+-Gerät.
  • Ein Ubuntu-Computer mit mindestens 14.04.4 LTS – Diese Anleitung verwendet Ubuntu 20.04.4 LTS.
  • Apache auf Windows- und Linux-Rechnern installiert.
  • OpenSSL auf Ihrem Windows-Rechner installiert – Dieses Tutorial verwendet OpenSSL 3.0.3 Light (32-Bit).

Generieren eines selbstsignierten Zertifikats auf Ubuntu

Der einfachste Weg, das selbstsignierte Zertifikat zu testen, ist auf einem Webserver, und einer der am häufigsten verwendeten Webserver ist Apache. Beginnen wir also dieses Tutorial mit der Konfiguration des Apache-Servers, der bereits auf dem Ubuntu-Rechner installiert ist.

1. SSH in Ihre Ubuntu-VM mit Ihrem bevorzugten SSH-Client.

2. Führen Sie den folgenden apt update-Befehl aus, um sicherzustellen, dass Ubuntu über die neuesten Paketquellen verfügt.

sudo apt update 

3. Öffnen Sie als Nächstes Ihren bevorzugten Webbrowser und navigieren Sie zu :80 , und Sie werden sehen, dass die Apache-Homepage nur auf dem HTTP-Port geöffnet wird (nicht sicher).

4. Führen Sie nun jeden der folgenden Befehle aus, um ein Verzeichnis mit dem Namen ~/certificates zu erstellen und wechseln Sie in das Verzeichnis, in dem Sie Zertifikate speichern.

mkdir ~/certificates
cd ~/certificates

5. Führen Sie als Nächstes den folgenden openssl-Befehl aus, um eine Certificate Signing Request (CSR) und einen privaten Schlüssel zu generieren.

openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes

Nachdem Sie den Befehl ausgeführt haben, geben Sie die Details wie unten gezeigt ein.

Apache-Server mit SSL-Zertifikat in Ubuntu sichern

Nachdem Sie Ihre Zertifikate generiert haben, müssen Sie den Apache-Server so konfigurieren, dass er die Zertifikate verwendet. Aber zuerst benötigen Sie ein dediziertes Verzeichnis, um Ihr Zertifikat zu speichern. Sie werden das SSL-Modul später aktivieren und testen, ob die Zertifikate beim Sichern Ihres Apache-Servers funktionieren.

1. Führen Sie die folgenden Befehle aus, um ein Verzeichnis (/etc/apache2/ssl) zu erstellen und die Zertifikate aus dem Verzeichnis ~/certificates/ in das Verzeichnis /etc/apache2/ssl zu verschieben.

mkdir /etc/apache2/ssl
mv ~/certificates/* /etc/apache2/ssl/.

2. Öffnen Sie die Standard-SSL-Apache-Site-Konfigurationsdatei (/etc/apache2/sites-available/default-ssl.conf) und fügen Sie die folgenden Zeilen hinzu. Achten Sie darauf, durch den tatsächlichen Namen Ihres Servers zu ersetzen.

Im folgenden Code geben Sie den Speicherort (Zertifikatschlüssel und Datei) an, in den Sie zuvor Ihre Zertifikate kopiert haben.

ServerName 
SSLCertificateFile    /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ProxyPreserveHost On

3. Führen Sie nun jeden der folgenden Befehle aus, um das SSL-Modul zu aktivieren, aktivieren Sie die geänderte Site (Schritt 4) und starten Sie den Apache-Dienst neu.

# Enable the SSL module so that you can work with SSL connections.
sudo a2enmod ssl proxy proxy_http proxy_balancer
# Enable the site you modified (step four)
sudo a2ensite default-ssl.conf
# Restart the Apache service
sudo service apache2 restart

4. Navigieren Sie abschließend erneut zu Ihrem Apache-Server. Aber dieses Mal mit HTTPS, wie unten gezeigt.

Wie Sie sehen können, wird Apache erfolgreich mit SSL-Verbindungen auf einem HTTPS-Port geöffnet. Machen Sie sich keine Sorgen, wenn Sie ein Warnsymbol mit der Meldung Nicht sicher sehen. Sie erhalten diese Warnung, da Sie ein selbstsigniertes Zertifikat (von Ihnen erstellt) und nicht von der Zertifizierungsstelle verwenden.

Klicken Sie auf Proceed to (unsafe), um weiterhin auf den Apache-Server zuzugreifen.

Sehen Sie dieselbe Seite wie unten gezeigt? Herzliche Glückwünsche! Sie haben den Apache-Server erfolgreich mit Ihrem selbstsignierten Zertifikat gesichert.

Generieren eines SSL-Zertifikats in Windows

Zuvor haben Sie einen auf einem Ubuntu-Computer gehosteten Apache-Server mit einem selbstsignierten Zertifikat gesichert. Auf die gleiche Weise können Sie auch den Apache-Server auf einem Windows-Betriebssystem sichern.

So sichern Sie Ihren Apache-Server unter Windows:

1. Öffnen Sie die Apache-Konfigurationsdatei (httpd.conf) unter C:\Apache24\conf location und kommentieren Sie die folgende Zeile aus.

Die folgende Zeile aktiviert das SSL-Modul auf Windows-Rechnern und erlaubt Apache, mit dem HTTPS-Port zu arbeiten.

LoadModule rewrite_module modules/mod_rewrite.so

2. Öffnen Sie als Nächstes PowerShell als Administrator und führen Sie den folgenden openssl-Befehl aus, um eine Certificate Signing Request (CSR) und einen privaten Schlüssel zu generieren.

openssl req -x509 -newkey rsa:4096 -keyout Apache.key -out Apache.crt -days 365 -nodes

Geben Sie nach Ausführung des Befehls die Details für Ihr Zertifikat ein, wie unten gezeigt.

3. Navigieren Sie zum Bin-Verzeichnis der OpenSSL-Installation (C:\ProgramFiles\OpenSSL-Win64\bin ) und überprüfen Sie das Apache-Zertifikat und den Schlüssel unten.

Konfigurieren des Apache-Servers zur Verwendung von SSL-Zertifikaten

Sie haben gerade Ihr Zertifikat und Ihren Schlüssel generiert, um die Apache-Serververbindung zu sichern. Aber wie bei Ubuntu benötigen Sie einen dedizierten Ordner, um Ihr Zertifikat und Ihren Schlüssel zu speichern und das SSL-Modul zu aktivieren.

1. Kopieren Sie Ihre SSL-Zertifikatsdatei (apache.crt ) und private Schlüsseldatei (apache.key ) nach C:\Apache24\conf Ordner.

2. Bearbeiten Sie die Apache SSL-Konfigurationsdatei (C:/Apache24/conf/httpd.conf ) und fügen Sie die folgenden Zeilen hinzu oder kommentieren Sie sie aus, falls bereits vorhanden.

Die folgenden Zeilen aktivieren das SSL-Modul und erlauben Apache, auf dem HTTPS-Port zu arbeiten.

LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

3. Bearbeiten Sie nun die Apache SSL-Datei (C:/Apache24/conf/extra/httpd-ssl.conf ) und fügen Sie die folgenden Zeilen hinzu. Diese Datei wird von httpd.conf aufgerufen Datei intern wie in der httpd.conf definiert Datei (inklusive conf/extra/httpd-ssl.conf).

SSLCertificateFile "C:\Apache24\conf\apache.crt"
SSLCertificateKeyFile "C:\Apache24\conf\apache.key"

4. Führen Sie die folgenden Befehle in PowerShell aus, um zum bin-Ordner der Apache-Installation zu navigieren, und starten Sie den Apache-Dienst.

# Change the working directory
cd C:\ProgramFiles\OpenSSL-Win64\bin
# Start the Apache service
./httpd.exe

5. Navigieren Sie abschließend zu https://localhost um den Apache-Server zu überprüfen.

Auf der Seite sollte dieselbe Meldung (It works!) angezeigt werden, die bestätigt, dass der Apache-Server mit einem selbstsignierten Zertifikat auf einem Windows-Computer ausgeführt wird.

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, wie Sie einen Apache-Webserver sowohl auf Ubuntu- als auch auf Windows-Betriebssystemen konfigurieren und überprüfen, ob Sie sicher auf eine Apache-Instanz zugreifen können.

Nun, wie planen Sie, Ihr Spiel mit Apache zu verbessern? Vielleicht Webbereitstellungen automatisieren? Oder eine Jenkins-CI-CD-Pipeline erstellen, um Ihren Softwareentwicklungsprozess zu verbessern?


Linux
  1. Meistern Sie den Linux-ls-Befehl

  2. 10 GRÜNDE, WINDOWS 10 AUF LINUX ZU ÄNDERN

  3. Linux vs. Windows-Hosting

  4. Verwenden von SNI zum Hosten mehrerer SSL-Zertifikate in Apache

  5. Speicherort des SSL-Zertifikats unter UNIX/Linux

Umstieg von Windows auf Linux

Meistern Sie die Linux-Befehlszeile

So führen Sie Windows 95 unter Linux aus

So generieren Sie selbstsignierte SSL-Zertifikate mit OpenSSL

SSL-Zertifikate auf einem Windows-Server installieren

Linux vs. Windows-Sicherheit