2013-06-13 7 views
23

Ich weiß, dass Sie den Zweck angeben können, für die ein Zertifikat mit öffentlichem Schlüssel kann in der openssl.cfg Datei wie diese durch das Hinzufügen einer Zeile verwendet werden:Openssl X509v3 Key Erweiterte Lizenz

extendedKeyUsage=serverAuth,clientAuth 

Aber da Ich habe mehrere Zertifikate zu erstellen, jede mit einer anderen erweiterten Schlüsselverwendung, ist es möglich, das Attribut, das ich brauche in der Befehlszeile (ohne die Datei openssl.cfg) zu spezifizieren? Etwas wie:

openssl req -newkey rsa:4096 \ 
      -extendedKeyUsage "serverAuth,clientAuth" \ 
      -keyform PEM \ 
      -keyout server-key.pem \ 
      -out server-req.csr \ 
      -outform PEM 

Vielen Dank!

Antwort

8

Was ich tun landete mehr unterschiedlichen openssl.cfg-Dateien erstellen und auf den richtigen einem verweisen, indem Sie entweder die -config oder die -extfile Schalter.

+3

Sie könnten Ihre eigene Antwort "akzeptieren" (so wird es nicht als unbeantwortete Frage mehr angezeigt) –

24

können Sie nur so etwas wie folgt verwenden:

openssl -extensions mysection -config myconfig.cnf 

und myconfig.cnf:

[mysection] 
keyUsage   = digitalSignature 
extendedKeyUsage = codeSigning 

ich nicht der Befehlszeilenschnittstelle auf diese Funktionalität bewusst bin.

+1

Ich bekomme dies: 'nicht zu finden 'distinguished_name' in Config' –

+0

@MarinosAn, angegebene Config enthält nur Teile relevant für die Frage. Möglicherweise müssen Sie einige zusätzliche Parameter angeben. Dies ist nicht im Rahmen der ursprünglichen Frage. – patrikbeno