openssl SAN-Zertifikat

„Subject Alternative Name“-Zertifikate erlauben einem einzigen Host, mehrere unterschiedliche alternative Hostnamen zuzuordnen.

Der Request, mit den unterschiedlichen Hostnamen, wird entweder mit openssl erzeugt oder es wird ein Request, der unterschiedliche Hostnamen enthält, auf das System kopiert.

Für den ersten Fall muss in der Sektion [ req ] in der openssl.cnf ein Parameter mit der Bezeichnung req_extensions hinzugefügt werden.

[bash]
[ req ]
default_bits = 2048 # Size of keys
distinguished_name = req_distinguished_name
# x509_extensions = v3_ca # extensions to add to the self signed cert

req_extensions = v3_req
[/bash]

Dieser Parameter verweist auf eine andere Sektion, die die massgebliche Zertifikatserweiterung (Extension) Subject Alternative Name enthält.

[bash]
[ v3_req ]
subjectAltName = DNS:www.zerfallskonstante.de, DNS:mail.zerfallskonstande.de
[/bash]

Enthält der erzeugte oder auf das System kopierte Request die subjectAltName’s schon muss in dem Abschnitt, der verwendeten CA die Option copy_extensions hinzugefügt werden. Hiermit werden die SAN’s aus dem Request in der von der CA signierte Zertifikat übernommen.

[bash]
copy_extensions = copy
[/bash]

Nun kann mit folgenden Aufrufen eine RSA-Schlüsseldatei erzeugt:

[bash]
openssl genrsa -aes256 -out ./subCA/private/SANkey.pem -rand ./subCA/private/.rand 2048
[/bash]

Und der Zertifikatsrequest für das SAN-Zertifikat generiert:

[bash]
openssl req -config ./openssl.cnf -new -key ./subCA/private/SANkey.pem -out ./subCA/SANreq.pem
[/bash]

Der Zertifikatsrequest wird nun von der Sub_CA signiert.

[bash]
openssl ca -config ../openssl.cnf -name Sub_CA -in ./subCA/SANreq.pem -out ./subCA/certs/SANcert.pem
[/bash]

Für den Import in einen IIS oder ähnliches wird das Zertifikat SANert.pem, der private Schlüssel SANkey.pem sowie das Zertifikat der ausstellenden CA SUBCAcert.pem in eine pkcs12-kodierte Datei konvertiert.

[bash]
openssl pkcs12 -export -out SANcert.pfx -inkey ./subCA/private/SANkey.pem -in ./subCA/cert/SANcert.pem -certfile ./subCA/cert/SUBCA.pem
[/bash]

http://documentation.progress.com/output/Iona/artix/5.5/security_guide_java/i382674.html
http://cmrg.fifthhorseman.net/wiki/SubjectAltName
http://www.linuxtopia.org/online_books/linux_system_administration/debian_linux_guides/debian_linux_reference_guide/index.html

Dieser Beitrag wurde unter Linux, openssl veröffentlicht. Setze ein Lesezeichen auf den Permalink.