Mehr unter www.intertech.de: ConfigManager | Webmailer | Roundcube

Wie Sie ein selbst signiertes SSL Zertifikat erstellen

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

Nach dem Studium dieser Anleitung können Sie

Chapters

1 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.

2 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
   ...

3 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.

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


<VirtualHost *:443>
  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

<Directory />
      Options FollowSymLinks
      AllowOverride All
</Directory>

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
</VirtualHost>