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