開放SSL

密碼學和 SSL/TLS 工具包

CA.pl

名稱

CA.pl - OpenSSL 憑證程式較友善的介面

語法

CA.pl -? | -h | -help

CA.pl -newcert | -newreq | -newreq-nodes | -xsign | -sign | -signCA | -signcert | -crl | -newca [-extra-cmd 參數]

CA.pl -pkcs12 [憑證名稱]

CA.pl -verify 憑證檔 ...

CA.pl -revoke 憑證檔 [原因]

說明

CA.pl 程式是一個 perl 程式,提供相關的命令列引數給 openssl(1) 指令,用於一些常見的憑證操作。它旨在透過使用一些簡單的選項,簡化憑證建立和管理的流程。

此程式旨在作為 openssl(1) 程式的簡單前端,供初學者使用。它的行為並不總是符合需求。若要更進一步控制憑證指令的行為,請直接呼叫 openssl(1) 指令。

下面提到的多數檔案名稱都可以透過編輯 CA.pl 程式碼進行修改。

在某些環境下,可能無法直接執行 CA.pl 程式碼(例如 Win32),而且預設組態檔位置可能不正確。在此情況下,可以使用指令

perl -S CA.pl

,並將 OPENSSL_CONF 環境變數設定為指向組態檔的正確路徑。

選項

-?, -h, -help

列印使用說明訊息。

-newcert

建立新的自簽憑證。將私密金鑰寫入檔案 newkey.pem,並將要求寫入檔案 newreq.pem。呼叫 openssl-req(1)

-newreq

建立新的憑證要求。將私密金鑰寫入檔案 newkey.pem,並將要求寫入檔案 newreq.pem。在幕後執行 openssl-req(1)

-newreq-nodes

-newreq 相同,但私密金鑰不會加密。使用 openssl-req(1)

-newca

建立新的 CA 層級,供 ca 程式(或 -signcert-xsign 選項)使用。系統會提示使用者輸入 CA 憑證的檔案名稱(也應該包含私密金鑰),或按 ENTER,系統會提示輸入 CA 的詳細資料。相關檔案和目錄會在目前目錄的 demoCA 目錄中建立。使用 openssl-req(1)openssl-ca(1)

如果 demoCA 目錄已經存在,則 -newca 指令不會覆寫它,也不會執行任何動作。如果先前使用 -newca 選項的呼叫異常終止,可能會發生這種情況。若要取得正確的行為,請在目錄已存在時將其刪除。

-pkcs12

建立一個包含使用者憑證、私人金鑰和 CA 憑證的 PKCS#12 檔案。它預期使用者憑證和私人金鑰在檔案 newcert.pem 中,而 CA 憑證在檔案 demoCA/cacert.pem 中,它會建立一個檔案 newcert.p12。因此,這個指令可以在 -sign 選項後呼叫。PKCS#12 檔案可以直接匯入瀏覽器。如果在命令列中有額外的引數,它將用作憑證的「友善名稱」(通常顯示在瀏覽器清單方塊中),否則會使用「我的憑證」這個名稱。委派工作給 openssl-pkcs12(1)

-sign, -signcert, -xsign

呼叫 openssl-ca(1) 指令來簽署憑證要求。它預期要求在檔案 newreq.pem 中。新的憑證會寫入檔案 newcert.pem,除了 -xsign 選項的情況,在該選項中它會寫入標準輸出。

-signCA

這個選項與 -sign 選項相同,除了它使用組態檔案區段 v3_ca,因此讓已簽署的要求成為有效的 CA 憑證。這在從根 CA 建立中間 CA 時很有用。額外的參數會傳遞給 openssl-ca(1)

-signcert

這個選項與 -sign 相同,除了它預期自簽署憑證存在於檔案 newreq.pem 中。額外的參數會傳遞給 openssl-x509(1)openssl-ca(1)

-crl

產生 CRL。執行 openssl-ca(1)

-revoke certfile [reason]

撤銷指定 certfile 中包含的憑證。可以指定一個選擇性的原因,而且必須是以下之一:unspecifiedkeyCompromiseCACompromiseaffiliationChangedsupersededcessationOfOperationcertificateHoldremoveFromCRL。利用 openssl-ca(1)

-verify

針對 demoCA 的 CA 憑證驗證憑證。如果在命令列中未指定任何憑證,它會嘗試驗證檔案 newcert.pem。呼叫 openssl-verify(1)

-extra-cmd parameter

對於每個選項 extra-cmd,如果呼叫同名的子命令 cmd,請將 parameter 傳遞給 openssl(1) 子命令。例如,如果呼叫 openssl-req(1),則會將使用 -extra-req 提供的 parameter 傳遞給它。對於多字詞參數,請重複選項或引用 parameters,讓它看起來像殼層中的單字詞。請參閱個別命令文件以取得更多資訊。

範例

建立 CA 階層

CA.pl -newca

完成憑證建立範例:建立 CA、建立要求、簽署要求,最後建立包含它的 PKCS#12 檔案。

CA.pl -newca
CA.pl -newreq
CA.pl -sign
CA.pl -pkcs12 "My Test Certificate"

環境

環境變數 OPENSSL 可用於指定 OpenSSL 程式的名稱。它可以是完整路徑名稱或相對路徑名稱。

環境變數 OPENSSL_CONFIG 可用於指定此腳本呼叫的 reqca 命令的組態選項和值。它的值應該是選項和路徑名稱,例如 -config /path/to/conf-file

另請參閱

openssl(1)openssl-x509(1)openssl-ca(1)openssl-req(1)openssl-pkcs12(1)config(5)

版權所有 2000-2021 OpenSSL 專案作者。保留所有權利。

根據 Apache 授權條款 2.0(「授權條款」)授權。您不得在不遵守授權條款的情況下使用此檔案。您可以在原始程式碼散佈中的 LICENSE 檔案或 https://www.openssl.org/source/license.html 取得副本。