Wie erstelle und installiere ich ein selbstsigniertes Zertifikat auf Apache?

Der Secure Socket Layer (SSL) dient der Verschlüsselung des Datenstroms zwischen dem Webserver und dem Webclient (dem Browser).

SSL makes use of what is known as asymmetric cryptography, commonly referred to as public key cryptography (PKI). With public key cryptography, two keys are created, one public, one private. Anything encrypted with either key can only be decrypted with its corresponding key. Thus if a message or data stream were encrypted with the server’s private key, it can be decrypted only using its corresponding public key, ensuring that the data only could have come from the server.

Das von einer vertrauenswürdigen Zertifizierungsstelle (CA) signierte Apache-SSL-Zertifikat stellt sicher, dass der Zertifikatsinhaber eine echte Person oder Organisation ist. Ohne ein vertrauenswürdiges signiertes Zertifikat sind Ihre Daten möglicherweise verschlüsselt, allerdings handelt es sich bei der Partei, mit der Sie kommunizieren, möglicherweise nicht um die Partei, mit der Sie kommunizieren. Ohne das Apache-SSL-Zertifikat wären Imitationsangriffe weitaus häufiger.

Das OpenSSL-Toolkit wird zum Generieren eines privaten RSA-Schlüssels und einer CSR (Certificate Signing Request) verwendet. Es kann auch zur Generierung selbstsignierter Zertifikate verwendet werden, die zu Testzwecken oder für den internen Gebrauch verwendet werden können.

Schritt 1: Generieren Sie einen privaten Schlüssel

Der erste Schritt besteht darin, Ihren privaten RSA-Schlüssel zu erstellen. Bei diesem Schlüssel handelt es sich um einen 1024-Bit-RSA-Schlüssel, der mit Triple-DES verschlüsselt und in einem PEM-Format gespeichert wird, sodass er als ASCII-Text lesbar ist.

openssl genrsa -des3 -out server.key 1024 Generieren eines privaten RSA-Schlüssels mit einem 1024-Bit-Langmodul .........................................................++++++ ........++++++ e ist 65537 (0x10001) Geben Sie die PEM-Passphrase ein: Passwort überprüfen – PEM-Passphrase eingeben:

Schritt 2: Generieren Sie eine CSR (Certificate Signing Request)

Sobald der private Schlüssel generiert ist, kann eine Zertifikatsignierungsanforderung generiert werden. Der CSR wird dann auf zwei Arten verwendet. Im Idealfall wird die CSR an eine Zertifizierungsstelle wie Verisign gesendet, die die Identität des Antragstellers überprüft und ein signiertes Zertifikat ausstellt. Die zweite Möglichkeit besteht darin, die CSR selbst zu signieren, was im nächsten Abschnitt demonstriert wird.

During the generation of the CSR, you will be prompted for several pieces of information. These are the X.509 attributes of the certificate. One of the prompts will be for “Common Name (e.g., YOUR name)”. It is important that this field be filled in with the fully qualified domain name of the server to be protected by SSL. If the website to be protected is https://yourdomain.com, then enter “yourdomain.com” at this prompt. The command to generate the CSR is as follows:

openssl req -new -key server.key -out server.csr Ländername (2-Buchstaben-Code) [GB]:IN Name des Staates oder der Provinz (vollständiger Name) [Berkshire]:Karnataka Ortsname (z. B. Stadt) [Newbury]:Bangalore Name der Organisation (z. B. Firma) [My Company Ltd]: Firmenname Name der Organisationseinheit (z. B. Abschnitt) []:Informationstechnologie Allgemeiner Name (z. B. Ihr Name oder der Hostname Ihres Servers) []:yourdomain.com E-Mail-Adresse []:admin@yourdomain.com Bitte geben Sie die folgenden „zusätzlichen“ Attribute ein wird zusammen mit Ihrer Zertifikatsanfrage verschickt Ein Challenge-Passwort []: Ein optionaler Firmenname []:

Schritt 3: Passphrase vom Schlüssel entfernen

Ein unglücklicher Nebeneffekt des mit einer Passphrase versehenen privaten Schlüssels besteht darin, dass der Webserver bei jedem Start des Webservers nach der Passphrase fragt. Offensichtlich ist dies nicht unbedingt praktisch, da nicht immer jemand da ist, um die Passphrase einzugeben, beispielsweise nach einem Neustart oder einem Absturz. mod_ssl bietet die Möglichkeit, anstelle des integrierten Passphrase-Dialogs ein externes Programm zu verwenden. Dies ist jedoch auch nicht unbedingt die sicherste Option. Es ist möglich, die Triple-DES-Verschlüsselung aus dem Schlüssel zu entfernen, sodass keine Passphrase mehr eingegeben werden muss. Wenn der private Schlüssel nicht mehr verschlüsselt ist, ist es wichtig, dass diese Datei nur für den Root-Benutzer lesbar ist! Sollte Ihr System jemals kompromittiert werden und ein Dritter an Ihren unverschlüsselten privaten Schlüssel gelangen, muss das entsprechende Zertifikat widerrufen werden. Nachdem dies gesagt ist, verwenden Sie den folgenden Befehl, um die Passphrase aus dem Schlüssel zu entfernen:

cp server.key server.key.org openssl rsa -in server.key.org -out server.key

Die neu erstellte server.key-Datei enthält keine Passphrase mehr.

Schritt 4: Erstellen eines selbstsignierten Zertifikats

At this point you will need to generate a self-signed certificate because you either don’t plan on having your certificate signed by a CA, or you wish to test your new SSL implementation while the CA is signing your certificate. This temporary certificate will generate an error in the client browser to the effect that the signing certificate authority is unknown and not trusted.

Um ein temporäres Zertifikat zu generieren, das 365 Tage lang gültig ist, geben Sie den folgenden Befehl ein:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt Unterschrift ok subject=/C=CH/ST=Bern/L=Oberdiessbach/O=Akadia AG/OU=Information Technology/CN=public.akadia.com/Email=martin dot zahn bei akadia dot ch Erhalten des privaten Schlüssels

Schritt 5: Installieren des privaten Schlüssels und Zertifikats

Wenn Apache mit mod_ssl installiert wird, werden mehrere Verzeichnisse im Apache-Konfigurationsverzeichnis erstellt. Der Speicherort dieses Verzeichnisses hängt davon ab, wie Apache kompiliert wurde.

cp server.crt /usr/local/apache/conf/ssl.crt cp server.key /usr/local/apache/conf/ssl.key

Schritt 6: SSL-fähige virtuelle Hosts konfigurieren

SSLEngine eingeschaltet SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key SetEnvIf User-Agent „.*MSIE.*“ nokeepalive ssl-unclean-shutdown CustomLog logs/ssl_request_log „%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x „%r“ %b“

Starten Sie nun Apache neu und überprüfen Sie.

Nehmen Sie Kontakt mit uns auf.

Abonnieren Sie die neuesten Updates

zusammenhängende Posts

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

German
English
English
Japanese
German
French
Spanish

WhatsApp uns

Beenden Sie die mobile Version