Erstellen eines validen SSL Zertifikats

Geschrieben von Eric Scheibler am 25.04.2015

Dieser Artikel beschreibt kurz und knapp, wie man ein valides, selbst signiertes SSL Zertifikat erstellt, wie es zum Beispiel von einem Webserver benötigt wird. Getestet unter Debian Wheezy.

Um ein valides SSL Zertifikat erzeugen zu können, müssen zunächst folgende Änderungen an der OpenSSSL Konfigurationsdatei durchgeführt werden:

sudo vim /etc/ssl/openssl.cnf
[...]
[ CA_default ]
[...]
# Extension copying option: use with caution.
copy_extensions = copy
[...]
[ v3_ca ]
[...]
# Include email address in subject alt name: another PKIX recommendation
# subjectAltName=email:copy
subjectAltName = @alt_names
[...]

Außerdem müssen die folgenden Zeilen an die Konfigurationsdatei angefügt werden:

sudo echo """
[alt_names]
DNS.1 = example.org
DNS.2 = www.example.org""" >> /etc/ssl/openssl.cnf

Nun kann das Zertifikat erzeugt werden:

sudo mkdir /etc/ssl/local/
sudo openssl req -new -x509 -sha256 -newkey rsa:2048 -days 730 -nodes \
    -keyout /etc/ssl/private/example.org.key -out /etc/ssl/local/example.org.pem
sudo chmod 600 /etc/ssl/private/example.org.key

Bei der Frage nach dem FQDN (fully qualified domain name) sowie in der Konfigurationsdatei unter “alt_names” muss die gewählte Domain angegeben werden. Anderenfalls klappt später die Verifikation durch den Client nicht. Das Zertifikat ist zwei Jahre lang gültig.

Mit dem folgenden Befehl lassen sich die Eigenschaften des erstellten Zertifikats kontrollieren:

openssl x509 -text -noout -in /etc/ssl/local/example.org.pem

Auf dieser Seite finden sich noch weitere nützliche OpenSSL Befehle beispielsweise zum Erzeugen eines Certificate Signing Requests (CSR).