X.509-Zertifikate [1] bestehen aus einem öffentlichen und einem privaten Schlüssel. Erzeugen Sie eine Zertifikatsanfrage, signieren Sie sie mit dem privaten Schlüssel. Die Datei mit der Zertifikatsanfrage senden Sie dann zur Validierung an eine Certificate Authority (CA) . Wird die Anfrage genehmigt, erhalten Sie einen öffentlichen Schlüssel – das eigentliche Zertifikat –, das Informationen über den Antragsteller beziehungsweise die Appliance oder den Dienst sowie die CA selbst enthält.
Mittels OpenSSL, das auf jeder Linux-Distribution verfügbar ist, lässt sich der Vorgang recht einfach nachvollziehen. Zuerst erzeugen Sie einen privaten Schlüssel mit der gewünschten Schlüssellänge:
$ openssl genrsa -out server.key 2048
Bei Bedarf lässt sich der Schlüssel mit einer der Optionen "-des, "-des3" oder "-idea" verschlüsseln, sodass beim Zugriff auf den Schlüssel erst das vergebene Passwort abgefragt wird.
Wer sich für Mathematik interessiert, kann sich die von OpenSSL erzeugten Zahlenkomponenten mit dem folgenden Kommando ansehen:
$ openssl rsa -in mydomain.key -noout -text
Die Zertifikatsanfrage erzeugen Sie ebenfalls mit einem OpenSSL-Kommando:
$ openssl req -new -sha256 -key server.key -out server.csr
Das OpenSSL-Kommando "req" bietet sehr viele Optionen und fragt die Informationen, die in das Zertifikat aufgenommen werden sollen, interaktiv ab. Hier wird beispielsweise ein SHA-256-Digest festgelegt. Alternativ lässt sich mit der Option "-config" eine Konfigurationsdatei angeben. Beispielsweise könnten in dieser Datei Profile für unterschiedliche Zertifikatstypen liegen.
Haben Sie die Zertifikatsanfrage von einer CA bestätigt bekommen, können Sie sich die Zertifikatsdatei mit Hilfe von OpenSSL ansehen:
$ openssl x509 -in /tmp/foo/mydomain.crt -noout -subject -issuer -dates
subject= /C=DE/ST=NRW/L=Dinslaken/O=Red Hat/OU=SEG/CN=tiffy.tuxgeek.de/emailAddress=root@localhost
issuer= /C=DE/ST=NRW/L=Dinslaken/O=Red Hat/OU=SEG/emailAddress=root@localhost
notBefore=Dec 27 10:02:26 2016 GMT
notAfter=Dec 25 10:02:26 2026 GMT