2013-03-18 18 views
26

Ich bin ein Shell-Skript zu schreiben Zertifikate mit OpenSSL zu unterschreiben:Sign-Zertifikat ohne Aufforderung in Shell-Skript

openssl ca -config "$CONF" -out "$BOXCERT" -infiles "$CSRFILE" 

Allerdings, wenn es ausgeführt wird, OpenSSL fragt immer, ob ich das Zertifikat signieren möchten:

Certificate is to be certified until Mar 19 11:50:33 2023 GMT (3653 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 

Ich möchte das Skript nicht interaktiv in einem Server ausgeführt werden. Gibt es eine Befehlszeilenparameter- oder Konfigurationsdateioption, die OpenSSL anweist, das Zertifikat zu signieren und es ohne Aufforderung zu committen?

Antwort

40

Sie können die Option -batch von openssl verwenden.

zB:

openssl ca -batch -config "$CONF" -out "$BOXCERT" -infiles "$CSRFILE" 
+0

Es funktioniert, danke. –

+1

Wenn Ihre ca-Taste eine Passphrase hat, können Sie sie auch mit verschiedenen Optionen wie der Umgebungsvariablen und dem Kennwort der Befehlszeile angeben. es wird dich anders auffordern. Hier ist ein einfacher Befehl, mit dem Sie eine Passphrase als Teil des Befehls übergeben können * openssl ca -batch -config "$ CONF" -passin pass: keypassword -out "$ BOXCERT" -in Dateien "$ CSRFILE" * –

Verwandte Themen