2013-03-18 101 views
26

我正在寫一個shell腳本中使用OpenSSL的簽名證書:註冊證書

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

但是,在運行時,OpenSSL的總是問我是否要對證書籤名:

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 

我想腳本在服務器中非交互式運行。是否有一些命令行參數或配置文件選項告訴OpenSSL簽署證書並提交而不提示?

回答

40

您可以使用openssl的-batch選項。

如:

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

它的工作原理,謝謝。 – 2013-03-18 13:51:04

+1

如果你的ca鍵有通過短語,那麼你也可以使用環境變量和命令行密碼等各種選項來指定它。否則會提示你。這裏是一個簡單的命令,你可以將pass口令作爲命令的一部分傳遞給你* openssl ca -batch -config「$ CONF」-passin pass:keypassword -out「$ BOXCERT」-infiles「$ CSRFILE」* – 2016-02-11 18:03:42