Mit Zertifikaten wird die Kommunikation zwischen Rechnern abgesichert. Bildlich gesprochen bestätigen sie, dass der Rechner auch der ist, für den er sich ausgibt. Die Echtheit von Zertifikaten wird typischerweise von einem weiteren Zertifikat bestätigt. Das Ganze bildet eine Kette von Vertrauen (Chain of Trust), die in sogenannten Root-Zertifikaten gründet, denen von vornherein vertraut wird. Diese Root-Zertifikate stammen normalerweise von großen Firmen und man muss in aller Regel dafür bezahlen, wenn einem diese Firmen bestätigen sollen, dass der Rechner ‚testserver.meine-domain.de‘ eine bestimmte Adresse hat. Diese Root-Zertifikate sind selbst unterzeichnet und begründen das Vertrauen, das in sie gesetzt wird eigentlich durch das Renommé, das deren Aussteller geniessen.
Es gibt mit Openssl aber auch die Möglichkeit, selbst ein Zertifikat auszustellen – im einfachsten Fall ebenfalls selbst unterzeichnet. Man kann mit so einem Zertifikat dann ein ganzes Netz von Vertrauensbeziehungen selbst erstellen. Für die Kommunikation von Rechnern in einem internen Netzwerk ist das vollkommen in Ordnung. Damit das funktioniert, muss das selbst erstelle Root-Zertifikat von den Rechnern des internen Netzwerks als gültig angesehen werden, dann sind Zertifikate, die davon unterzeichnet wurden, genauso gut verwendbar wie kommerziell erstellte Zertifikate.
Wenn man das in die Tat umsetzen möchte, steht hier, wie man das machen kann. Diese Installation verlangt, dass die Datei /etc/ssl/openssl.cnf bestimmte Inhalte hat. Damit lassen sich dann Zertifikate für bestimmte Zweck erstellen.
Das Erstellen von Zertifikaten umfasst 3 Schritte – zunächst einen Schlüssel erstellen, dann einen Request erstellen und zuletzt das Unterzeichnen des Zertifikats durch das Root-Zertifikat.
In dem Zertifikat steht der CommonName – das ist der Name, für den es gilt,
der Zweck (wofür es benutzt werden kann)
die Gültigkeitsdauer (von-bis)
und der Verweis auf das Root-Zertifikat – also wer das Zertifikat ausgestellt hat bzw. die Richtigkeit garantiert.