Sie sind hier : Homepage →  Linux (15) Eigenes Zertifikat handisch→  Apache SSL installieren

Grundsätzliche Vorgehensweise für ein Public Zertifikat

Man kann entweder sein eigenes Zertifikat erstellen, bei dem jeder Browser jedesmal nochmal nachfragt oder eines bei einer Zertifizierungsstelle kaufen.

Hier der Vorgang für ein sogenanntes öffentliches Zertifikat:

  1. Auf dem Server (bei uns Suse 12.1) generiere ich mir einen Schlüssel *.key).
  2. Aus diesem Schlüssel generiere ich mir einen Zertifizierungs-Request, also die Anfrage (*.csr)
  3. Diese Zertifizierungs-Request Datei (also den komischen Inhalt) übermittle ich (oft in einem Web-Fenster) an den Zertifizierungsdiensteister, bei uns PSW.net
  4. Der Dienstleister verarbeitet den Auftrag und die jeweilige Zertifizierungsstelle verschickt dann eine Zip-Datei mit 2 neuen Dateien (an den autorisierten Empfänger). Dort enthalten sind eine "mein-server.crt" und eine "mein-server.ca-bundle" Datei.

.

Das neue Zertifikat einbauen bzw. erneuern

Jetzt müssen auf dem Server mindestens !! 3 Vorgänge abgearbeitet werden: In der zu der Domain oder dem Server gehörenden ssl Vhost Datei stehen die Verzeichnisse, in denen der Apache Webserver diese 3 neuen Dateien (also insgesamt den!! Schlüssel) sucht und benutzt.

Bei uns sind das unter Suse 12.1 diese Einträge :
.

  1. SSLCertificateFile        /etc/apache2/ssl.crt/www.meine-domain.de.crt
  2. SSLCertificateKeyFile    /etc/apache2/ssl.key/www.meine-domain.de.key
  3. SSLCertificateChainFile /etc/apache2/ssl.crt/www.meine-domain.de.ca-bundle

.
und jetzt der Reihe nach:
.

  1. Der von mir vorab generierte .key File muss jetzt entsprechend umbenannt werden (vorher war das wurscht) und in das entsprechende ssl.key Verzeichnis kopiert werden.
  2. Die beiden angelieferten Dateien aus dem Zipfile müssen auch umbenannt werden und in die entsprechenden Verzeichnisse kopiert werden.
  3. Alle diese drei voneinander abhängigen Dateien gehören ausschließlich dem User "root" und niemandem sonst, auch nicht zum lesen !!!
  4. Wenn der Apache im Verzeichnis /etc/init.d/ gestoppt und neu gestartet wird, muß er wieder laufen. Wenn nicht, also "failed" gemeldet wird, dann in /var/log/apache2/ in den Logfiels nachsehen, was schief gelaufen ist.

.
Wenn das Zertifikat zwar im MS Internet Explorer und im Opera funktioniert, jedoch im Firefox noch immer nicht akzeptiert wird, dann auf http://sslzilla.de den Schlüssel prüfen lassen und den/die Fehler aufschreiben und beseitigen.
.
Meist ist mit dem .ca-bundle etwas schief gelaufen.

Apache SSL installieren - weil ich es immer wieder gesucht hatte:

Apache und SSL unter Linux 

Der Apache 2 beinhaltet gegenüber seinem Vorgänger bereits ein SSL-Modul welches sich leicht in den Apache integrieren lässt.

Es muss für den Webserver noch ein passendes Zertifikat erstellt werden und die ssl Optionen in der httpd.conf bekannt gemacht werden. Die Pfade zu den Zertifikaten müssen natürlich der Umgebung angepasst werden und auch gegen Diebstahl und neugierige Blicke gesichert werden. Außerdem berauchen wir für ssl noch ein paar Schlüssel, die wie folgt generiert werden:

# generieren eines privaten Serverschlüssels.
openssl genrsa -out server.key -des3 1024

#generieren einer Zertifikatsanfrage mit dem privaten Schlüssel
openssl req -new -key server.key -out server.csr

Wichtig ist dabei "Common Name" bei dem der Domainname oder die IP Adresse des Servers angegeben werden muss damit das Zertifikat auf den richtigen Server zeigt. Diese csr-Datei ist für eine offizielle Zertifikatsanfrage geeignet. Ein selbst unterzeichnetes Zertifikat gibt es mit:

openssl req -new -x509 -days 1460 -key server.key -out server.crt

Hier sollte ebenfalls auf den "Common Name" geachtet werden. - Damit beim Apache start nicht immer das Schlüsselkennwort eingeben werden muss, kann ein Serverschlüssel ohne Kennwort erzeugt werden:

openssl rsa -in server.key -out server_neu.key

Außerdem erstellen wir eine "vhost" Konfigurationsdatei für den SSL-Support mit Namen ssl.conf, die wie folgt aussehen könnte:

========================================================
#meine-domain-ssl.conf
LoadModule ssl_module modules/mod_ssl.so
Listen 443
#Leichte Beschleunigung bei der SSL Session Cache
SSLSessionCache dbm:/usr/local/apache2/logs/ssl_scache

<VirtualHost _default_:443>
  DocumentRoot "/usr/local/apache2/htdocs"
  ServerName meine-domain:443
  ServerAdmin Admin@mene-domain
  ErrorLog /usr/local/apache2/logs/error_ssl_log
  TransferLog /usr/local/apache2/logs/access_ssl_log

  # SSL Einschalten
  SSLEngine on

  # Das Zertifikat für den Server
  SSLCertificateFile /usr/local/apache2/conf/server.crt

  # Die Schlüsseldatei für den Server
  SSLCertificateKeyFile /usr/local/apache2/conf/server.key
  <Files ~ "\.(cgi|shtml|phtml|php3?)$">

  # Bereitstellung der Standardvariablen für PHP, SSI und CGI
  SSLOptions +StdEnvVars
  </Files>
  <Directory "/usr/local/apache2/cgi-bin">
    # Bereitstellung der Standardvariablen für das CGI Verzeichnis
    SSLOptions +StdEnvVars
  </Directory>

  # Eine eigene SSL Logdatei
  CustomLog ssl_log "$t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x %b"
</VirtualHost>
========================================================


Das Original dieser abgeschriebenen Seite steht hier:
http://www.html-world.de/program/apache_9.php

hier steht auch noch etwas ähnliches für Debian
http://www.keleo.de/blog/Apache-Virtual-Host-mit-SSL-einrichten.html

Apache mit SSL einrichten
http://www.felix-schwarz.name/Apache_mit_SSL_einrichten
---------------------------------------------------------------------------------

Apache SSL Modul (mod_ssl) aktivieren

alles für debian - ob das bei Suse auch geht ??

Entweder man aktiviert es manuell, indem man einen Softlink setzt:
  
cd /etc/apache2/mods-enabled/
ln -s ../mods-available/ssl.conf ssl.conf
ln -s ../mods-available/ssl.load ssl.load

oder indem man a2enmod nutzt:
   
sudo a2enmod ssl

Apaches SSL Port öffnen

wird in yast gemacht

 

Startseite -- © 2001/2022 - Copyright by Dipl.-Ing. Gert Redlich / Germany - D-65191 Wiesbaden - Telefon-Nummer - Impressum