Erstellen selbst signierter SSL Zertifikat

Ein “self-signed certificate” ist ein schneller und kostenloser Weg ihre Webseiten oder Webaplikationen mittels SSL abzusichern.

Nach dem Studium dieser Anleitung können Sie

  • Einen privaten Schlüssel und ein “certificate signing request” erzeugen
  • Ein SSL-Zertifikat erzeugen

Einführung

Ein selbst signiertes Zertifikat bietet die volle Verschlüsselung wie ein gekauftes Zertifikat. Da jedoch die Authentizität des Ausstellers nicht geprüft werden kann, sehen Besucher einer so abgesicherten Seite eine Browser-Warnung, die das Zertifikat als nicht vertrauenswürdig einstuft. Deshalb eignet sich ein selbst signiertes SSL-Zertifikat im Wesen für nicht produktive Webseiten, bzw. zur Absicherung von Tools, auf die nur eine begrenzte Anzahl von Benutzern zugreift.

Erstellen eines privaten Schlüssels und eines “certificate signing request”

Um ein SSL-Zertifikat zu erzeugen, wird ein “private key” und ein “certificate signing request” benötigt. Diese werden durch die nachfolgenden, recht einfachen Kommandos erzeugt. Während dieses Prozesses werden Sie aufgefordert, ein Kennwort für den “privtae key” einzugeben. Hier können Sie ein einfaches Passwort verwenden, da es im nächsten Schritt wieder entfernt wird.:

$ openssl genrsa -des3 -out server.orig.key 2048
 …
 Enter pass phrase for server.key:
 Verifying - Enter pass phrase for server.key:
$ openssl rsa -in server.orig.key -out server.key
 Enter pass phrase for server.orig.key:
 writing RSA key
$ openssl req -new -key server.key -out server.csr
 …
 Country Name (2 letter code) [AU]:DE
 State or Province Name (full name) [Some-State]:NRW
 …

Erstellen eines SSL-Certificates

Das “self signed certificate” wird mittels des “privtae keys” unter Zuhilfenahme der Dateien “server.key” und “server.csr” erzeugt::

$ openssl x509 -req -days 3650 -in server.csr -signkey server.key -out
 server.crt

Die erzeugte Datei “server.crt” ist ihr Zertifikat, dass Sie z.B. in apache verwenden können.

Bemerkung

Sollten Sie phpMyAdmin verwenden, sichern Sie dieses auf jeden Fall mittels eines SSL-Zertifikat ab. Hier ein Konfigurations-Beispiel::

SSLEngine on
SSLOptions +StrictRequire

SSLCertificateFile /etc/pki/tls/certs/ss\_server.crt
SSLCertificateKeyFile /etc/pki/tls/private/ss\_server.key

ServerAdmin hostmaster@yourdomain.de
DocumentRoot /var/www/vhost1/htdocs
ServerName v-xxxxx.intertech.de

DirectoryIndex index.htm index.html index.php


Options FollowSymLinks
AllowOverride All


CustomLog /var/www/vhost1/logs/access\_log combined
ErrorLog /var/www/vhost1/logs/error\_log

LogLevel warn
ServerSignature On

Alias /mysql /var/www/apps/phpMyAdmin