Zum Inhalt springen

openssl subjectAltName direkt aus dem csr verwenden statt extra openssl.cnf


Wuwu

Empfohlene Beiträge

Da Google und die Doku zu openssl leider nicht sehr aufschlussreich zu sein scheinen wiess hier vielleicht ja jemand Rat.

Ich habe eine CA mit openssl aufgesetzt und wuerde gerne TinyCA als Frontend verwenden, jedoch fuktioniert reines openssl auf Kommandozeile auch nur mit Einschraenkungen, die ich ungern in Kauf nehme.

Verwendete openssl version, etwas neueres als 0.9.8 kann nicht verwendet werden:

# openssl version

OpenSSL 0.9.8o 01 Jun 2010

Die Requests, die signiert werden sollen benoetigen spezielle Erweiterungsfelder. Vor allen Dingen aber das SubjectAltName Feld.

Certificate Request:

    Data:

        Version: 0 (0x0)

        Subject: C=IE, ST=Cork, L=Cork, O=something, OU=something_unique, CN=something_different

        Subject Public Key Info:

            Public Key Algorithm: rsaEncryption

            RSA Public Key: (2048 bit)

                Modulus (2048 bit):

                    00:[...]:11

                Exponent: 65537 (0x10001)

        Attributes:

        Requested Extensions:

            X509v3 Basic Constraints: 

                CA:FALSE

            X509v3 Key Usage: 

                Digital Signature, Key Encipherment, Data Encipherment

            X509v3 Extended Key Usage: 

                TLS Web Server Authentication, TLS Web Client Authentication

            X509v3 Subject Alternative Name: 

                IP Address:10.26.165.184, , DNS:somename

    Signature Algorithm: sha1WithRSAEncryption

        95:[...]:35

TinyCA macht jetzt nichts anderes als den Request in pem Format umzuwandeln und dann folgende Syntax auszufuehren: /usr/bin/openssl ca -batch -passin env:SSLPASS -notext -config /home/username/.TinyCA/Interism2/openssl.cnf -name server_ca -in "/home/username/.TinyCA/Interism2/req/dmM1NTogOnZDZW50ZXJMb2dCcm93c2VyLXZjNTU6R1NTLVRlc3Q6Q29yazpDb3JrOklF.pem" -days 365 -preserveDN -md sha1 -noemailDN
SSL Certificate:

Certificate:

    Data:

        Version: 3 (0x2)

        Serial Number: 6 (0x6)

        Signature Algorithm: sha1WithRSAEncryption

        Subject: C=IE, ST=Cork, L=Cork, O=something, OU=something_unique, CN=something_different

        Validity

            Not Before: Aug 11 08:07:35 2013 GMT

            Not After : Aug 11 08:07:35 2014 GMT

        Subject: C=IE, ST=Cork, L=Cork, O=something, OU=something_unique, CN=something_different

        Subject Public Key Info:

            Public Key Algorithm: rsaEncryption

            RSA Public Key: (2048 bit)

                Modulus (2048 bit):

                    00:[...]:ff

                Exponent: 65537 (0x10001)

        X509v3 extensions:

            X509v3 Basic Constraints: 

                CA:FALSE

            X509v3 Subject Key Identifier: 

                BC:C2:C4:28:47:B5:34:E6:B7:CC:D9:43:10:6D:A1:D3:B0:79:22:76

            X509v3 Authority Key Identifier: 

                keyid:2F:10:44:A6:51:62:F9:8E:EC:D9:EF:BB:8A:C9:B3:BE:C4:CD:F8:49


            X509v3 Key Usage: 

                Digital Signature, Key Encipherment, Data Encipherment

            X509v3 Extended Key Usage: 

                TLS Web Server Authentication, TLS Web Client Authentication

    Signature Algorithm: sha1WithRSAEncryption

        4b:[...]:ff

Es fehlt das benoetigte "X509v3 Subject Alternative Name" Feld. Verwendete openssl.cnf:

[ ca ]

default_ca      = server_ca


[ server_ca ]

dir = /home/username/.TinyCA/Interism2

certs = $dir/certs

crl_dir = $dir/crl

database = $dir/index.txt

new_certs_dir = $dir/newcerts

certificate = $dir/cacert.pem

serial = $dir/serial

crl = $dir/crl.pem

private_key = $dir/cacert.key

RANDFILE = $dir/.rand

x509_extensions = server_cert

default_days = 365

default_crl_days = 30

default_md = sha1

preserve = no

policy = policy_server

unique_subject = yes


[ server_cert ]

basicConstraints = CA:FALSE

subjectKeyIdentifier = hash

authorityKeyIdentifier = keyid:always

keyUsage = digitalSignature,keyEncipherment,dataEncipherment

extendedKeyUsage = serverAuth,clientAuth

#subjectAltName

Das subjectAltName Attribut ist bewusst auskommentiert, da ansonsten das Signieren bricht. Ich koennte manuell in die cnf gehen und dort entsprechend fest die Werte eintragen, das muesste ich aber fuer einzelne Zertifikat tun, da hier immer individuelle Werte stehen, das moechte ich natuerlich vermeiden.

Es gibt die Moeglichkeit openssl mit folgendem zusaetzlichen Parameter zu starten:

-extensions v3_req -extfile PATH_TO_FILE

Jedoch benoetige ich hier zusaetzlich zum Request noch einmal eine eigene Konfigurationsdatei, auch etwas, das ich mir gern sparen wuerde, da alle benoetigten Daten ja eigentlich im Request schon enthalten sind.

Was muss also in der openssl.cnf fuer den Wert "subjectAltName" definiert werden, damit einfach die Daten aus dem Request uebernommen werden?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay doch selbst gefunden...

In der openssl.cnf der CA muss nicht der subjectAltName bearbeitet werden sondern in meinem Fall unter der server_ca folgende Zeile hinzugefuegt werden, danach funktioniert alles Bestens (mit dem entsprechenden Risiko, dass einem auch boese Extensions zugeschoben werden koennen).

copy_extensions = copy

Vielleicht hilfts ja zumindest jemanden, der die gleiche Frage irgendwann hat :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...