Problem mit .java.policy

Gut, dann gehe ich davon aus, dass der Fehler relativ früh passiert. Würde mich auch nicht wundern, denn aufgrund der vielen Fehlermeldungen hatte ich meine openssl.conf angepasst. Aber gehen wir schrittweise vor.

Wenn ich also mit dieser openssl.conf:

[ ca ]
default_ca      		= ca_default


[ ca_default ]
dir             		= s:/Arbeit/java_softzerti_test
private_key     		= $dir/ca.key
certificate     		= $dir/ca.pem
database        		= $dir/index
serial				= $dir/serial
new_certs_dir			= $dir/certs/
default_days    		= 1095
default_crl_days        	= 365
default_md      		= sha512
policy          		= policy
x509_extensions 		= v3_usr


[ policy ]    
commonName              	= supplied     
     


[ req ]
distinguished_name      	= req_distinguished_name


[ req_distinguished_name ]
commonName                      = Common Name (eg, YOUR name)


[ v3_ca ]
subjectKeyIdentifier 		= hash
authorityKeyIdentifier 		= keyid:always, issuer:always
basicConstraints 		= CA:true
crlDistributionPoints		= URI:https://www.meinurl.de/crl.pem


[ v3_usr ]
subjectKeyIdentifier 		= hash
authorityKeyIdentifier 		= keyid:always, issuer:always
basicConstraints 		= CA:false
nsCertType  			= server, client, email
keyUsage 			= nonRepudiation, digitalSignature, keyEncipherment
crlDistributionPoints		= URI:https://www.meinurl.de/crl.pem


[ v3_code_sign ]
subjectKeyIdentifier 		= hash
authorityKeyIdentifier 		= keyid:always, issuer:always
basicConstraints 		= CA:false
nsCertType  			= client, email, objsign
keyUsage 			= digitalSignature
extendedKeyUsage 		= codeSigning, msCodeInd, msCodeCom
crlDistributionPoints		= URI:https://www.meinurl.de/crl.pem

das Kommando

openssl req -extensions v3_ca -x509 -days 3650 -newkey rsa:4096 -keyout s:/Arbeit/java_softzerti_test/ca.key -out s:/Arbeit/java_softzerti_test/ca.pem -batch -passin pass:blablub -passout pass:blablub 

ausführe kommt:

Loading ‚screen‘ into random state - done
Generating a 4096 bit RSA private key
…++
…++
writing new private key to ‚s:/Arbeit/java_softzerti_test/ca.key‘

error, no objects specified in config file
problems making Certificate Request

Was ist falsch bzw. fehlt?

Hab nochmal einiges hin und her getestet und habe nun folgenden Stand:
Bei Aufruf dieser HTML Datei

<!DOCTYPE HTML>
<html>
<head>
</head>
<body text="#4E8DB3" bgcolor="#FFFFFF" style="padding: 0px; margin: 0px;">

    <script src="https://www.java.com/js/deployJava.js"></script>
    <script> 
        var attributes = {
			code:	'will.be.ignored',
			width:	300,
			height:	300
		}; 
        var parameters = { jnlp_href: 'localfile.jnlp' }; 
        deployJava.runApplet(attributes,parameters,'1.7'); 
    </script>

</body>
</html>

mit dieser JNLP Datei
[xml]<?xml version="1.0" encoding="UTF-8"?>


Automatikspeicherung
Firmenname











[/xml]
zeigt Java das hier an:

Klick auf “Mehr Informationen” zeigt das:

Klick auf “Zertifikatdetails anzeigen” zeigt das:

Und in den beiden Java Konsolen, die aufgegange sind sieht man das:

Wo liegt jetzt aktuell der Fehler?

Okay, vielleicht war das missverständlich, aber Du solltest eine openssl.conf im lokalen Verzeichnis anlegen und auf diese mittels “-config” verweisen. Nicht die OpenSSL Installation manipulieren. Außerdem wäre es vielleicht sinnvoll, wenn Du das Vorgehen erstmal komplett nachvollziehst, bevor Du anfängst die Parameter der Kommandos zu verändern.

In Deiner PM schreibst Du “Ziel ist die komplette Automation ohne Benutzereingaben”. Ist Dir bewusst, was der Zweck eines Wurzelzertifikates ist? Diese werden einmalig erstellt und bilden dann eine vertrauenswürdige Wurzel. Wenn es sicher aufbewahrt wird, kann ein Wurzelzertifikat ein Leben lang gültig bleiben. Den zugehörigen Schlüssel benötigt man auch nur, wenn man neue Signaturzertifikate ausstellen möchte.

Aus den Screenshots die Du gepostet hast, lässt sich nicht schließen wo der Fehler liegt. Dazu sind die Kommandos aus den Beiträgen #52 und #58 relevant. Vermutlich solltest Du die Ausgaben hier posten.

Viele Grüße
Fancy

Ja, das habe ich bzw. tue ich.

Schon klar. Ich wüsste garnicht, wie man die Installation manipulieren könnte.

Auch mit den ursprünglichen Kommandos bekomme ich die Fehlermeldung. Dein vorgestellter Ablauf in #35 funktioniert bei mir nicht fehlerfrei, daher musste ich ja etliches ändern, was ich mir ergoogelt habe. Allerdings muss sich da an irgendeiner Stelle ein Fehler eingeschlichen haben und ich weiß nicht welcher und wo.

Ja, ist mir bekannt. Das Sript soll ja erst mal eine Wurzel erzeugen. Spätere Verlängerungen bzw. Signierungen neuer Applets in der gleichen Wurzel bekommen ein anderes Script.

Das ist doof. Ich hasse Fehlermeldungen mit denen man nichts anfangen kann.

Eigentlich wollte ich gern nochmal von ganz vorn anfangen, um den Fehler zu finden. Dafür hab ich die Fehlermeldung in #61 gezeigt. Beitrag #62 war nur, weil ich ungeduldig war und weiter probieren wollte. Meine Hoffnung war, dass uns die Fehlermeldungen helfen.

Was ich die ganze Zeit sagen will ist, dass dein Ablauf aus #35 bei mir nicht ohne Fehler läuft. Daher musste ich ja überall soviel ändern.

Also nochmal von ganz vorn das ganze:
Ich erstelle deine vorgegebene Verzeichnisstruktur und nehme deine Original openssl.conf. Der Ablauf ist mit deinem identisch bis zum Punkt „das Zertifikatrequest signieren“. Da kommt eine andere Meldung als bei dir.
Den Punkt „das Wurzelzertifikat in die Java cacerts importieren“ habe ich weg gelassen, weil ich später die ca.cer in die Signaturgeberzertifikate im Control Panel importiere.

S:\Arbeit\java_softzerti_test\CA>openssl req -config openssl.conf -extensions v3_ca -x509 -days 3650 -newkey rsa:4096 -keyout ca.key -out ca.pem
Loading 'screen' into random state - done
Generating a 4096 bit RSA private key
............................................................................................................................++
............................++
writing new private key to 'ca.key'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg, YOUR name) []:Firmenname

S:\Arbeit\java_softzerti_test\CA>openssl x509 -in ca.pem -outform der -out ca.cer

S:\Arbeit\java_softzerti_test\CA>openssl req -config openssl.conf -new -newkey rsa:2048 -keyout foobar.key -out foobar.csr
Loading 'screen' into random state - done
Generating a 2048 bit RSA private key
.............................+++
....................................................................................................................................................+++
writing new private key to 'foobar.key'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg, YOUR name) []:Firmenname

S:\Arbeit\java_softzerti_test\CA>openssl ca -config openssl.conf -extensions v3_code_sign -in foobar.csr -out foobar.pem
Using configuration from openssl.conf
Loading 'screen' into random state - done
Enter pass phrase for S:/Arbeit/java_softzerti_test/CA/ca.key:
S:/Arbeit/java_softzerti_test/CA/certs/ need to be a directory
S:/Arbeit/java_softzerti_test/CA/certs/: No error

S:\Arbeit\java_softzerti_test\CA>cd..

S:\Arbeit\java_softzerti_test>dir /s
[...]
 Verzeichnis von S:\Arbeit\java_softzerti_test

13.05.2014  11:21    <DIR>          .
13.05.2014  11:21    <DIR>          ..
13.05.2014  11:36    <DIR>          CA
13.05.2014  11:21    <DIR>          jar
               0 Datei(en),              0 Bytes

 Verzeichnis von S:\Arbeit\java_softzerti_test\CA

13.05.2014  11:36    <DIR>          .
13.05.2014  11:36    <DIR>          ..
13.05.2014  11:35             1.364 ca.cer
13.05.2014  11:34             3.406 ca.key
13.05.2014  11:34             1.903 ca.pem
13.05.2014  11:21    <DIR>          certs
13.05.2014  11:36               891 foobar.csr
13.05.2014  11:36             1.834 foobar.key
13.05.2014  11:33             1.443 openssl.conf
               6 Datei(en),         10.841 Bytes

 Verzeichnis von S:\Arbeit\java_softzerti_test\CA\certs

13.05.2014  11:21    <DIR>          .
13.05.2014  11:21    <DIR>          ..
               0 Datei(en),              0 Bytes

 Verzeichnis von S:\Arbeit\java_softzerti_test\jar

13.05.2014  11:21    <DIR>          .
13.05.2014  11:21    <DIR>          ..
14.12.2011  16:09             7.527 localfile.class
               1 Datei(en),          7.527 Bytes
[...]

Warum funktioniert das Kommando openssl ca -config openssl.conf -extensions v3_code_sign -in foobar.csr -out foobar.pem bei dir und bei mir nicht?

Okay, mindestens:

  1. Der Common Name bei beiden Zertifikaten darf nicht gleich sein.
  2. Das Erzeugen der Widerrufsliste fehlt, erstmal nicht schlimm, aber Java wird das später als Fehler anzeigen.
  3. Es fehlen die Dateien index (muss leer sein) und serial (muss 01 enthalten)

Viele Grüße
Fancy

OK, alle drei Punkte beachtet:

S:\Arbeit\java_softzerti_test>dir /s
 Verzeichnis von S:\Arbeit\java_softzerti_test

13.05.2014  12:25    <DIR>          .
13.05.2014  12:25    <DIR>          ..
13.05.2014  12:25    <DIR>          CA
13.05.2014  12:25    <DIR>          jar
               0 Datei(en),              0 Bytes

 Verzeichnis von S:\Arbeit\java_softzerti_test\CA

13.05.2014  12:25    <DIR>          .
13.05.2014  12:25    <DIR>          ..
13.05.2014  12:25    <DIR>          certs
13.05.2014  12:25                 0 index
13.05.2014  12:25             1.443 openssl.conf
13.05.2014  12:25                 2 serial
               3 Datei(en),          1.445 Bytes

 Verzeichnis von S:\Arbeit\java_softzerti_test\CA\certs

13.05.2014  12:25    <DIR>          .
13.05.2014  12:25    <DIR>          ..
               0 Datei(en),              0 Bytes

 Verzeichnis von S:\Arbeit\java_softzerti_test\jar

13.05.2014  12:25    <DIR>          .
13.05.2014  12:25    <DIR>          ..
14.12.2011  16:09             7.527 localfile.class
               1 Datei(en),          7.527 Bytes

S:\Arbeit\java_softzerti_test>cd CA

S:\Arbeit\java_softzerti_test\CA>set OPENSSL_CONF=s:/Arbeit/java_softzerti_test/CA/openssl.conf

S:\Arbeit\java_softzerti_test\CA>openssl req -config openssl.conf -extensions v3_ca -x509 -days 3650 -newkey rsa:4096 -keyout ca.key -out ca.pem
Loading 'screen' into random state - done
Generating a 4096 bit RSA private key
...............++
................................................................++
writing new private key to 'ca.key'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg, YOUR name) []:Signaturgeber

S:\Arbeit\java_softzerti_test\CA>openssl ca -config openssl.conf -gencrl -out crl.pem
Using configuration from openssl.conf
Loading 'screen' into random state - done
Enter pass phrase for s:/Arbeit/java_softzerti_test/CA/ca.key:

S:\Arbeit\java_softzerti_test\CA>openssl x509 -in ca.pem -outform der -out ca.cer

S:\Arbeit\java_softzerti_test\CA>openssl req -config openssl.conf -new -newkey rsa:2048 -keyout foobar.key -out foobar.csr
Loading 'screen' into random state - done
Generating a 2048 bit RSA private key
..........................................................................................................................++
+
..............................................................................................................+++
writing new private key to 'foobar.key'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Verify failure
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg, YOUR name) []:Firmenname

S:\Arbeit\java_softzerti_test\CA>openssl ca -config openssl.conf -extensions v3_code_sign -in foobar.csr -out foobar.pem
Using configuration from openssl.conf
Loading 'screen' into random state - done
Enter pass phrase for s:/Arbeit/java_softzerti_test/CA/ca.key:
s:/Arbeit/java_softzerti_test/CA/certs/ need to be a directory
s:/Arbeit/java_softzerti_test/CA/certs/: No error

S:\Arbeit\java_softzerti_test\CA>cd..

S:\Arbeit\java_softzerti_test>dir /s
 Verzeichnis von S:\Arbeit\java_softzerti_test

13.05.2014  12:25    <DIR>          .
13.05.2014  12:25    <DIR>          ..
13.05.2014  12:28    <DIR>          CA
13.05.2014  12:25    <DIR>          jar
               0 Datei(en),              0 Bytes

 Verzeichnis von S:\Arbeit\java_softzerti_test\CA

13.05.2014  12:28    <DIR>          .
13.05.2014  12:28    <DIR>          ..
13.05.2014  12:27             1.373 ca.cer
13.05.2014  12:26             3.394 ca.key
13.05.2014  12:26             1.915 ca.pem
13.05.2014  12:25    <DIR>          certs
13.05.2014  12:27               873 crl.pem
13.05.2014  12:28               891 foobar.csr
13.05.2014  12:28             1.834 foobar.key
13.05.2014  12:25                 0 index
13.05.2014  12:25             1.443 openssl.conf
13.05.2014  12:25                 2 serial
               9 Datei(en),         11.725 Bytes

 Verzeichnis von S:\Arbeit\java_softzerti_test\CA\certs

13.05.2014  12:25    <DIR>          .
13.05.2014  12:25    <DIR>          ..
               0 Datei(en),              0 Bytes

 Verzeichnis von S:\Arbeit\java_softzerti_test\jar

13.05.2014  12:25    <DIR>          .
13.05.2014  12:25    <DIR>          ..
14.12.2011  16:09             7.527 localfile.class
               1 Datei(en),          7.527 Bytes

Wieder Halt an der selben Stelle. Warum?

Okay, ich habe das gerade in einer frischen VM mit dem aktuellen OpenSSL ausprobiert und konnte Deinen Fehler reproduzieren. Das Problem ist diese Zeile in der openssl.conf:

new_certs_dir			= $dir/certs/

Wenn Du dort das abschließende / entfernst, sollte es gehen (imho ist das ein Bug):

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Windows\system32>cd C:\Users\Fancy

C:\Users\Fancy>openssl version
OpenSSL 1.0.1g 7 Apr 2014

C:\Users\Fancy>mkdir CA

C:\Users\Fancy>cd CA

C:\Users\Fancy\CA>mkdir certs

C:\Users\Fancy\CA>type NUL > index

C:\Users\Fancy\CA>echo 01 > serial

C:\Users\Fancy\CA>copy ..\openssl.conf .\
        1 file(s) copied.

C:\Users\Fancy\CA>type openssl.conf
[ ca ]
default_ca                      = ca_default


[ ca_default ]
dir                             = C:/Users/Fancy/CA
private_key                     = $dir/ca.key
certificate                     = $dir/ca.pem
database                        = $dir/index
serial                          = $dir/serial
new_certs_dir                   = $dir/certs
default_days                    = 1095
default_crl_days                = 365
default_md                      = sha512
policy                          = policy
x509_extensions                 = v3_usr


[ policy ]
commonName                      = supplied



[ req ]
distinguished_name              = req_distinguished_name


[ req_distinguished_name ]
commonName                      = Common Name (eg, YOUR name)


[ v3_ca ]
subjectKeyIdentifier            = hash
authorityKeyIdentifier          = keyid:always, issuer:always
basicConstraints                = CA:true
crlDistributionPoints           = URI:http://mschorn.net/crl.pem


[ v3_usr ]
subjectKeyIdentifier            = hash
authorityKeyIdentifier          = keyid:always, issuer:always
basicConstraints                = CA:false
nsCertType                      = server, client, email
keyUsage                        = nonRepudiation, digitalSignature, keyEncipherm
ent
crlDistributionPoints           = URI:http://mschorn.net/crl.pem


[ v3_code_sign ]
subjectKeyIdentifier            = hash
authorityKeyIdentifier          = keyid:always, issuer:always
basicConstraints                = CA:false
nsCertType                      = client, email, objsign
keyUsage                        = digitalSignature
extendedKeyUsage                = codeSigning, msCodeInd, msCodeCom
crlDistributionPoints           = URI:http://mschorn.net/crl.pem
C:\Users\Fancy\CA>
C:\Users\Fancy\CA>
C:\Users\Fancy\CA>openssl req -config openssl.conf -extensions v3_ca -x509 -days
 3650 -newkey rsa:4096 -keyout ca.key -out ca.pem
Loading 'screen' into random state - done
Generating a 4096 bit RSA private key
..++
...............++
writing new private key to 'ca.key'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg, YOUR name) []:Foobar Enterprise CA

C:\Users\Fancy\CA>openssl ca -config openssl.conf -gencrl -out crl.pem
Using configuration from openssl.conf
Loading 'screen' into random state - done
Enter pass phrase for C:/Users/Fancy/CA/ca.key:

C:\Users\Fancy\CA>openssl x509 -in ca.pem -outform der -out ca.cer

C:\Users\Fancy\CA>keytool -import -keystore "C:\Program Files\Java\jre8\lib\secu
rity\cacerts" -trustcacerts -alias foobarenterpriseca -file ca.cer
Enter keystore password:
Owner: CN=Foobar Enterprise CA
Issuer: CN=Foobar Enterprise CA
Serial number: da9e726603775d09
Valid from: Wed May 21 14:43:06 PDT 2014 until: Sat May 18 14:43:06 PDT 2024
Certificate fingerprints:
         MD5:  76:AA:3B:C0:6A:A3:49:00:AD:DB:18:FC:1A:47:21:88
         SHA1: 1A:6E:93:3E:0B:8F:2B:A5:79:35:61:AA:DF:13:40:D0:71:29:6C:A6
         SHA256: A2:8C:79:00:FE:20:9F:AC:95:D3:E7:E6:38:BC:D9:CF:C5:86:D8:EA:17:
4D:27:D3:90:51:90:51:3B:BB:57:B7
         Signature algorithm name: SHA1withRSA
         Version: 3

Extensions:

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 10 C8 4F 48 7C 96 B1 F4   4E AB 52 99 1F 00 C6 D3  ..OH....N.R.....
0010: 78 99 81 D0                                        x...
]
[CN=Foobar Enterprise CA]
SerialNumber: [    da9e7266 03775d09]
]

#2: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://mschorn.net/crl.pem]
]]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 10 C8 4F 48 7C 96 B1 F4   4E AB 52 99 1F 00 C6 D3  ..OH....N.R.....
0010: 78 99 81 D0                                        x...
]
]

Trust this certificate? [no]:  yes
Certificate was added to keystore

C:\Users\Fancy\CA>openssl req -config openssl.conf -new -newkey rsa:2048 -keyout
 foobar.key -out foobar.csr
Loading 'screen' into random state - done
Generating a 2048 bit RSA private key
..............+++
......................................+++
writing new private key to 'foobar.key'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg, YOUR name) []:Foobar Development

C:\Users\Fancy\CA>openssl ca -config openssl.conf -extensions v3_code_sign -in f
oobar.csr -out foobar.pem
Using configuration from openssl.conf
Loading 'screen' into random state - done
Enter pass phrase for C:/Users/Fancy/CA/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :PRINTABLE:'Foobar Development'
Certificate is to be certified until May 20 21:48:41 2017 GMT (1095 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

C:\Users\Fancy\CA>openssl pkcs12 -export -out foobar.p12 -inkey foobar.key -in f
oobar.pem -certfile ca.pem
Loading 'screen' into random state - done
Enter pass phrase for foobar.key:
Enter Export Password:
Verifying - Enter Export Password:

C:\Users\Fancy\CA>keytool -importkeystore -srckeystore foobar.p12 -srcstoretype
PKCS12 -alias 1 -destkeystore foobar.jks -destalias foobar
Enter destination keystore password:
Re-enter new password:
Enter source keystore password:

C:\Users\Fancy\CA>keytool -list -v -keystore foobar.jks -alias foobar
Enter keystore password:
Alias name: foobar
Creation date: May 21, 2014
Entry type: PrivateKeyEntry
Certificate chain length: 2
Certificate[1]:
Owner: CN=Foobar Development
Issuer: CN=Foobar Enterprise CA
Serial number: 1
Valid from: Wed May 21 14:48:41 PDT 2014 until: Sat May 20 14:48:41 PDT 2017
Certificate fingerprints:
         MD5:  D2:7E:3E:A9:AF:D2:6E:54:49:48:03:DE:A9:75:83:3A
         SHA1: 1D:F4:01:98:93:8E:B4:46:B4:70:38:79:AC:6E:E4:88:96:C1:0D:60
         SHA256: 5A:82:53:BA:D1:F4:36:A9:BA:C0:60:6C:D3:F0:AC:11:D9:F1:92:44:18:
0F:C5:98:B3:05:2A:7B:3E:E2:A6:2B
         Signature algorithm name: SHA512withRSA
         Version: 3

Extensions:

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 10 C8 4F 48 7C 96 B1 F4   4E AB 52 99 1F 00 C6 D3  ..OH....N.R.....
0010: 78 99 81 D0                                        x...
]
[CN=Foobar Enterprise CA]
SerialNumber: [    da9e7266 03775d09]
]

#2: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
  CA:false
  PathLen: undefined
]

#3: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://mschorn.net/crl.pem]
]]

#4: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
  codeSigning
  1.3.6.1.4.1.311.2.1.21
  1.3.6.1.4.1.311.2.1.22
]

#5: ObjectId: 2.5.29.15 Criticality=false
KeyUsage [
  DigitalSignature
]

#6: ObjectId: 2.16.840.1.113730.1.1 Criticality=false
NetscapeCertType [
   SSL client
   S/MIME
   Object Signing
]

#7: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 04 79 5B 46 31 1F 16 B9   D6 96 78 A4 DC F1 E1 26  .y[F1.....x....&
0010: D2 47 D9 55                                        .G.U
]
]

Certificate[2]:
Owner: CN=Foobar Enterprise CA
Issuer: CN=Foobar Enterprise CA
Serial number: da9e726603775d09
Valid from: Wed May 21 14:43:06 PDT 2014 until: Sat May 18 14:43:06 PDT 2024
Certificate fingerprints:
         MD5:  76:AA:3B:C0:6A:A3:49:00:AD:DB:18:FC:1A:47:21:88
         SHA1: 1A:6E:93:3E:0B:8F:2B:A5:79:35:61:AA:DF:13:40:D0:71:29:6C:A6
         SHA256: A2:8C:79:00:FE:20:9F:AC:95:D3:E7:E6:38:BC:D9:CF:C5:86:D8:EA:17:
4D:27:D3:90:51:90:51:3B:BB:57:B7
         Signature algorithm name: SHA1withRSA
         Version: 3

Extensions:

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 10 C8 4F 48 7C 96 B1 F4   4E AB 52 99 1F 00 C6 D3  ..OH....N.R.....
0010: 78 99 81 D0                                        x...
]
[CN=Foobar Enterprise CA]
SerialNumber: [    da9e7266 03775d09]
]

#2: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://mschorn.net/crl.pem]
]]

#4: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 10 C8 4F 48 7C 96 B1 F4   4E AB 52 99 1F 00 C6 D3  ..OH....N.R.....
0010: 78 99 81 D0                                        x...
]
]


C:\Users\Fancy\CA>dir
 Volume in drive C has no label.
 Volume Serial Number is 2C9E-80E8

 Directory of C:\Users\Fancy\CA

05/21/2014  02:52 PM    <DIR>          .
05/21/2014  02:52 PM    <DIR>          ..
05/21/2014  02:44 PM             1,396 ca.cer
05/21/2014  02:43 PM             3,394 ca.key
05/21/2014  02:43 PM             1,948 ca.pem
05/21/2014  02:48 PM    <DIR>          certs
05/21/2014  02:43 PM               885 crl.pem
05/21/2014  02:47 PM               903 foobar.csr
05/21/2014  02:52 PM             3,964 foobar.jks
05/21/2014  02:47 PM             1,834 foobar.key
05/21/2014  02:50 PM             4,245 foobar.p12
05/21/2014  02:48 PM             6,066 foobar.pem
05/21/2014  02:48 PM                51 index
05/21/2014  02:48 PM                21 index.attr
05/21/2014  02:40 PM                 0 index.old
05/21/2014  02:37 PM             1,431 openssl.conf
05/21/2014  02:48 PM                 3 serial
05/21/2014  02:40 PM                 5 serial.old
              15 File(s)         26,146 bytes
               3 Dir(s)  29,353,877,504 bytes free

C:\Users\Fancy\CA>

Viele Grüße
Fancy

Datt läuft!!! Fancy, ick könnt dir knutschen!!!

Hammer.

Jetzt nur noch eine winzige Kleinigkeit zur Automatisierung:
Wie muss ich die openssl.conf verändern, dass bei den beiden openssl req Kommandos nicht nach dem Common Name gefragt wird?

Ich hatte das durch folgende Änderung im Mittelteil versucht:

[ policy ]    
commonName					= optional     
[ req ]
distinguished_name				= req_distinguished_name
prompt						= no
[ req_distinguished_name ]
CN						= Signaturgeber

Leider verwendet openssl damit sowohl für die CA als auch für das Zertifikat den selben Namen, was ja nicht sein darf.
Wo kann ich den commonName für das Zertifikat vorgeben?

Du kannst das über die Kommandozeile übergeben:

X:\CA>openssl req -config openssl.conf -new -newkey rsa:2048 -keyout foobar2.key -out foobar2.csr -subj "/CN=Foobar Development 2"

Wofür das in Deinem Fall aber gut sein soll, erschließt sich mir nicht.

Viele Grüße
Fancy

Ja, funktioniert!!!

Danke, Fancy!!