2016-04-28 3 views
5

Ich würde gerne eine basicConstraints=CA:TRUE,pathlen:0 Einschränkung in meine selbstsignierte CA-Erstellungsskript enthalten, und es würde einen sehr langen Weg gehen, um meine Prozedur zu vereinfachen, wenn ich nicht musste Erstellen Sie eine Konfigurationsdatei und die gesamte Ordnerstruktur einer richtigen Zertifizierungsstelle.Gibt es sowieso, um BasicConstraints für openssl cert über die Befehlszeile

Ich versuche ein Intermediate-CERT zu erstellen, das nur End-Zertifikate signieren kann, nicht weitere CAs. Ich werde Bouncycastle verwenden, um alle weiteren Zertifikate zu signieren, die Ordnerstruktur, die ich für eine richtige CA erstellen müsste, wird sowieso nicht verwendet.

+0

Es scheint nicht die Frage über Software-Entwicklung. Darüber hinaus enthalten Sie nicht die Parameter, die Sie derzeit verwenden. In der Regel enthält openssl.exe automatisch die 'basicConstraints' mit' Subject Type = CA' und 'Path Length Constraint = None' im Zertifikat. Ich habe versucht, 'openssl ecparam -out myCA.key -name secp384r1 -genkey' und 'openssl req -x509 -new -sha384 -key myCA.key -out myCA.pem -outform PEM -days 3650 -subj"/C = DE/O = OK soft GmbH/OU = Forschung/CN = CA-Behörde ". Man kann '-extensions v3_ca' hinzufügen, um auf' v3_ca' oder default 'openssl.cfg' zu verweisen, aber eines hat die gleichen Ergebnisse. – Oleg

+0

Ich empfehle Ihnen, zu überprüfen, dass 'req' Abschnitt Ihrer' openssl.cfg' 'x509_extensions = v3_ca' Eintrag enthält. Ich nehme an, dass Sie das CA-Zertifikat nur auf andere Weise erstellen (nicht mit "openssl req ...") und es ist der Grund für Ihr Problem. – Oleg

+0

Ich erstelle die CA mit dieser: 'openssl genrsa -des3 -out $ KEYS_DIR/ca.key 4096' ' openssl req -Neu -x509-Tage 36500 -key $ KEYS_DIR/ca.key -out $ KEYS_DIR/ca .crt' Ich hatte gehofft, dass es einen Weg gibt, einfach die basicConstraint in die zweite Zeile einzufügen. –

Antwort

7

Sie müssen nicht müssen eine OpenSSL-Konfigurationsdatei oder eine beliebige Ordnerstruktur überhaupt erstellen, um ein selbstsigniertes Zertifikat mit OpenSSL zu erstellen.

Zum Beispiel, hier ist das, was eine minimale OpenSSL-Konfigurationsdatei enthalten könnte die grundlegenden Einschränkungen Erweiterung zu setzen, wie Sie fragen:

[req] 
distinguished_name=dn 
[ dn ] 
[ ext ] 
basicConstraints=CA:TRUE,pathlen:0 

Und hier erstelle ich ein selbst signiertes Zertifikat OpenSSL von einem Bash-Shell mit diese "Konfigurationsdatei", nur, es ist keine Datei - es ist eine Shell-Variable:

CONFIG=" 
[req] 
distinguished_name=dn 
[ dn ] 
[ ext ] 
basicConstraints=CA:TRUE,pathlen:0 
" 

openssl req -config <(echo "$CONFIG") -new -newkey rsa:2048 -nodes \ 
    -subj "/CN=Hello" -x509 -extensions ext -keyout key.pem -out crt.pem 

Viel Glück!

+1

Es ist eine Datei. Du siehst es einfach nicht. Aber ein Lob dafür, dass man es explizit als Bashismus bezeichnet. –

Verwandte Themen