Wuwu Geschrieben 11. August 2013 Teilen Geschrieben 11. August 2013 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wuwu Geschrieben 11. August 2013 Autor Teilen Geschrieben 11. August 2013 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.