2013-03-18 7 views
26

Sto scrivendo uno script di shell per firmare i certificati utilizzando OpenSSL:certificato Segno senza la richiesta in script di shell

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

Tuttavia, durante l'esecuzione di esso, OpenSSL chiede sempre se voglio firmare il certificato:

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 

Desidero che lo script venga eseguito in modo non interattivo su un server. Esiste qualche opzione del parametro della riga di comando o del file di configurazione per dire a OpenSSL di firmare il certificato e di eseguirlo senza chiedere conferma?

risposta

40

È possibile utilizzare l'opzione -batch di openssl.

esempio:

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

Funziona, grazie. –

+1

se la tua chiave ca ha una frase passata, puoi anche specificarla usando varie opzioni come la variabile d'ambiente e la password della riga di comando. ti chiederà altrimenti. Ecco un semplice comando in cui puoi passare la frase passata come parte del comando * openssl ca -batch -config "$ CONF" -passinpass: keypassword -out "$ BOXCERT" -infiles "$ CSRFILE" * –