openssl ca文档翻译
文章目錄
- 譯者注
- 翻譯
- 名稱
- 提要
- 描述
- 選項
- CRL 選項
- 配置文件選項
- 策略格式
- SPKAC 格式
- 示例
- 文件
- 限制
- BUGS
- WARNINGS
- HISTORY
- SEE ALSO
- COPYRIGHT
- 譯者修改的一個配置文件
譯者注
翻譯openssl-ca == man ca文檔翻譯。
邊看邊翻譯,翻譯的挺爛。
翻譯
名稱
openssl-ca, ca - sample minimal CA application
提要
openssl ca [-help] [-verbose] [-config filename] [-name section] [-gencrl] [-revoke file] [-valid file] [-status serial] [-updatedb] [-crl_reason reason] [-crl_hold instruction] [-crl_compromise time] [-crl_CA_compromise time] [-crldays days] [-crlhours hours] [-crlexts section] [-startdate date] [-enddate date] [-days arg] [-md arg] [-policy arg] [-keyfile arg] [-keyform PEM|DER] [-key arg] [-passin arg] [-cert file] [-selfsign] [-in file] [-out file] [-notext] [-outdir dir] [-infiles] [-spkac file] [-ss_cert file] [-preserveDN] [-noemailDN] [-batch] [-msie_hack] [-extensions section] [-extfile section] [-engine id] [-subj arg] [-utf8] [-sigopt nm:v] [-create_serial] [-rand_serial] [-multivalue-rdn] [-rand file…] [-writerand file]
描述
ca 命令是一個最小的 CA 應(yīng)用程序。它可用于簽署各種形式的證書請求并生成 CRL,它還維護(hù)已頒發(fā)證書及其狀態(tài)的文本數(shù)據(jù)庫。
下面是命令的選項介紹。
選項
- help:打印出使用信息。
- -verbose:這將打印有關(guān)正在執(zhí)行的操作的額外詳細(xì)信息。
- -config filename:指定要使用的配置文件。
- -name section:指定要使用的配置文件部分(overrides default_ca in the ca section).
- -in filename:需要由CA簽名的一個證書請求的文件名。
- -ss_cert filename:由 CA 簽名的單個自簽名證書。
- -spkac filename:包含單個 Netscape 簽名的公鑰和質(zhì)詢以及要由 CA 簽名的附加字段值的文件。有關(guān)所需輸入和輸出格式的信息,請參閱 SPKAC FORMAT 部分。
- -infiles:如果存在,這應(yīng)該是最后一個選項,所有后續(xù)參數(shù)都被視為包含證書請求的文件的名稱。
- -out filename:將證書輸出到的輸出文件。默認(rèn)為標(biāo)準(zhǔn)輸出。證書詳細(xì)信息也將以 PEM 格式打印到此文件中(除了 -spkac 輸出 DER 格式)。
- -outdir directory:將證書輸出到的目錄。證書將被寫入一個文件名,該文件名由十六進(jìn)制的序列號組成,并附加“.pem”。
- -cert:CA 證書文件。
- -keyfile filename:用于簽署請求的私鑰。
- -keyform PEM|DER:私鑰文件中數(shù)據(jù)的格式。默認(rèn)為 PEM。
- -sigopt nm:v:在簽名或驗證操作期間將選項傳遞給簽名算法。這些選項的名稱和值是特定于算法的。
- -key password:用于加密私鑰的密碼。由于在某些系統(tǒng)上命令行參數(shù)是可見的(例如帶有 ‘ps’ 實用程序的 Unix),因此應(yīng)謹(jǐn)慎使用此選項。
- -selfsign:指示頒發(fā)的證書將使用簽署證書請求的密鑰進(jìn)行簽名(使用 -keyfile 給出)。使用不同密鑰簽名的證書請求將被忽略。如果給出 -spkac、-ss_cert 或 -gencrl,則忽略 -selfsign。使用 -selfsign 的結(jié)果是自簽名證書出現(xiàn)在證書數(shù)據(jù)庫中的條目中(請參閱配置選項數(shù)據(jù)庫),并使用與使用自簽名證書進(jìn)行簽名的所有其他證書相同的序列號計數(shù)器。
- -passin arg:密鑰密碼源。有關(guān) arg 格式的更多信息,請參閱“密碼短語選項”
- -notext:不要將證書的文本形式輸出到輸出文件。
- -startdate date:這允許明確設(shè)置開始日期。日期的格式為 YYMMDDHHMMSSZ(與 ASN1 UTCTime 結(jié)構(gòu)相同)或 YYYYMMDDHHMMSSZ(與 ASN1 GeneralizedTime 結(jié)構(gòu)相同)。在這兩種格式中,必須存在秒 SS 和時區(qū) Z。
- -enddate date:這允許明確設(shè)置到期日期。日期的格式為 YYMMDDHHMMSSZ(與 ASN1 UTCTime 結(jié)構(gòu)相同)或 YYYYMMDDHHMMSSZ(與 ASN1 GeneralizedTime 結(jié)構(gòu)相同)。在這兩種格式中,必須存在秒 SS 和時區(qū) Z。
- -days arg:認(rèn)證證書的天數(shù)。
- -md alg:要使用的消息摘要。可以使用 OpenSSL dgst 命令支持的任何摘要。對于不支持摘要的簽名算法(即 Ed25519 和 Ed448),任何設(shè)置的消息摘要都會被忽略。此選項也適用于 CRL。
- -policy arg:此選項定義要使用的 CA“策略”。這是配置文件中的一個部分,它決定哪些字段應(yīng)該是強(qiáng)制性的或與 CA 證書匹配。查看政策格式部分了解更多信息。
- -msie_hack:這是使 ca 與非常舊版本的 IE 證書注冊控制“certenr3”一起工作的不推薦使用的選項。它幾乎所有東西都使用 UniversalStrings。由于舊控件存在各種安全漏洞,因此強(qiáng)烈建議不要使用它。
- -preserveDN:通常,證書的 DN 順序與相關(guān)策略部分中的字段順序相同。設(shè)置此選項時,順序與請求相同。這主要是為了與較舊的 IE 注冊控件兼容,該控件僅在其 DN 與請求順序匹配時才接受證書。 Xenroll 不需要這樣做。
- -noemailDN:證書的 DN 可以包含 EMAIL 字段(如果存在于請求 DN 中),但是,將電子郵件設(shè)置到證書的 altName 擴(kuò)展名中是一個很好的策略。設(shè)置此選項時,EMAIL 字段將從證書的主題中刪除,并且僅在最終存在的擴(kuò)展中設(shè)置。可以在配置文件中使用 email_in_dn 關(guān)鍵字來啟用此行為。
- -batch:這將設(shè)置批處理模式。在這種模式下,不會詢問任何問題,所有證書都將自動獲得認(rèn)證。
- -extensions section:包含證書擴(kuò)展的配置文件部分在頒發(fā)證書時添加(默認(rèn)為 x509_extensions,除非使用 -extfile 選項)。如果不存在擴(kuò)展部分,則創(chuàng)建 V1 證書。如果擴(kuò)展部分存在(即使它是空的),則會創(chuàng)建 V3 證書。有關(guān)擴(kuò)展節(jié)格式的詳細(xì)信息,請參閱 x509v3_config(5) 手冊頁。
- -extfile file:用于讀取證書擴(kuò)展的附加配置文件(使用默認(rèn)部分,除非還使用了 -extensions 選項)。
- -engine id:指定引擎(通過其唯一的 id 字符串)將導(dǎo)致 ca 嘗試獲取對指定引擎的功能引用,從而在需要時對其進(jìn)行初始化。然后引擎將被設(shè)置為所有可用算法的默認(rèn)值。
- -subj arg:取代請求中給出的主題名稱。 arg 必須格式化為 /type0=value0/type1=value1/type2=....關(guān)鍵字字符可以用 \(反斜杠)轉(zhuǎn)義,并保留空格。允許為空值,但相應(yīng)的類型不會包含在生成的證書中。
- -utf8:此選項導(dǎo)致字段值被解釋為 UTF8 字符串,默認(rèn)情況下它們被解釋為 ASCII。這意味著字段值,無論是從終端提示還是從配置文件中獲取,都必須是有效的 UTF8 字符串。
- -create_serial:如果從配置中指定的文本文件讀取序列號失敗,則指定此選項會創(chuàng)建一個新的隨機(jī)序列號用作下一個序列號。要獲取隨機(jī)序列號,請改用 -rand_serial 標(biāo)志;這應(yīng)該只用于簡單的錯誤恢復(fù)。
- -rand_serial:生成一個大的隨機(jī)數(shù)用作序列號。這會覆蓋任何選項或配置以使用序列號文件。
- -multivalue-rdn:此選項導(dǎo)致 -subj 參數(shù)被解釋為完全支持多值 RDN。例子:*/DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe*。如果未使用 -multi-rdn,則 UID 值為 123456+CN=John Doe。
- -rand file…:一個或多個包含隨機(jī)數(shù)據(jù)的文件,用于為隨機(jī)數(shù)生成器提供種子。可以指定多個文件,由一個與操作系統(tǒng)相關(guān)的字符分隔。分隔符是 ;對于 MS-Windows,對于 OpenVMS,對于所有其他的 :。
- [-writerand file]:退出時將隨機(jī)數(shù)據(jù)寫入指定文件。這可以與后續(xù)的 -rand 標(biāo)志一起使用。
CRL 選項
- -gencrl:此選項根據(jù)索引文件中的信息生成 CRL。
- -crldays num:下一個 CRL 到期前的天數(shù)。那就是從現(xiàn)在到放置在 CRL nextUpdate 字段中的日子。
- -crlhours num:下一個 CRL 到期前的小時數(shù)。
- -revoke filename:包含要撤銷的證書的文件名。
- -valid filename:包含用于添加有效證書條目的證書的文件名。
- -status serial:顯示具有指定序列號的證書的吊銷狀態(tài)并退出。
- -updatedb:更新數(shù)據(jù)庫索引以清除過期證書。
- -crl_reason reason:撤銷原因,其中原因是以下之一:未指定、keyCompromise、CACompromise、affiliationChanged、取代、停止操作、證書持有或 removeFromCRL。原因的匹配不區(qū)分大小寫。設(shè)置任何撤銷原因?qū)⑹?CRL v2。實際上 removeFromCRL 并不是特別有用,因為它僅用于當(dāng)前未實現(xiàn)的增量 CRL。
- -crl_hold instruction:這會將 CRL 吊銷原因代碼設(shè)置為 certificateHold,并將保留指令設(shè)置為必須是 OID 的指令。盡管任何 OID 都只能使用 holdInstructionNone(RFC2459 不鼓勵使用),但通常會使用 holdInstructionCallIssuer 或 holdInstructionReject。
- -crl_compromise time:這會將撤銷原因設(shè)置為 keyCompromise 和不時的妥協(xié)。時間應(yīng)采用 GeneralizedTime 格式,即 YYYYMMDDHHMMSSZ。
- -crl_CA_compromise time:這與 crl_compromise 相同,但撤銷原因設(shè)置為 CACompromise。
- -crlexts section:包含要包含的 CRL 擴(kuò)展的配置文件部分。如果不存在 CRL 擴(kuò)展部分,則創(chuàng)建 V1 CRL,如果存在 CRL 擴(kuò)展部分(即使它為空),則創(chuàng)建 V2 CRL。指定的 CRL 擴(kuò)展是 CRL 擴(kuò)展而不是 CRL 條目擴(kuò)展。應(yīng)該注意的是,某些軟件(例如 Netscape)不能處理 V2 CRL。有關(guān)擴(kuò)展節(jié)格式的詳細(xì)信息,請參閱 x509v3_config(5) 手冊頁。
配置文件選項
包含 ca 選項的配置文件部分如下所示: 如果使用 -name 命令行選項,則使用對應(yīng)的部分。否則,要使用的部分必須在配置文件的 ca 部分(或配置文件的默認(rèn)部分)的 default_ca 選項中命名。除了 default_ca,以下選項直接從 ca 部分讀取:RANDFILE,preserve,msie_hack With the exception of **RANDFILE**, this is probably a bug and may change in future releases.
許多配置文件選項與命令行選項相同。如果選項存在于配置文件和命令行中,則使用命令行值。如果一個選項被描述為強(qiáng)制性的,那么它必須存在于配置文件或使用的命令行等效項(如果有)中。
- oid_file:這指定了一個包含附加 OBJECT IDENTIFIERS 的文件。文件的每一行都應(yīng)包含對象標(biāo)識符的數(shù)字形式,后跟空格,然后是短名稱,后跟空格,最后是長名稱。
- oid_section:這指定了配置文件中包含額外對象標(biāo)識符的部分。每行應(yīng)包含對象標(biāo)識符的短名稱,后跟 = 和數(shù)字形式。使用此選項時,短名稱和長名稱相同。
- new_certs_dir:與 -outdir 命令行選項相同。它指定將放置新證書的目錄。強(qiáng)制的。
- certificate:與 -cert 相同。它提供了包含 CA 證書的文件。強(qiáng)制的。
- private_key:與 -keyfile 選項相同。包含 CA 私鑰的文件。強(qiáng)制的。
- RANDFILE:啟動時指定的文件被加載到隨機(jī)數(shù)生成器中,并在退出時將寫入 256 個字節(jié)。
- default_days:與 -days 選項相同。認(rèn)證證書的天數(shù)。
- default_startdate:與 -startdate 選項相同。認(rèn)證證書的開始日期。如果未設(shè)置,則使用當(dāng)前時間。
- default_enddate:與 -enddate 選項相同。此選項或 default_days(或命令行等效項)必須存在。
- default_crl_hours default_crl_days:與 -crlhours 和 -crldays 選項相同。僅當(dāng)兩個命令行選項都不存在時才會使用這些選項。必須至少存在其中之一才能生成 CRL。
- default_md:與 -md 選項相同。強(qiáng)制,除非簽名算法不需要摘要(即 Ed25519 和 Ed448)。
- database:要使用的文本數(shù)據(jù)庫文件。強(qiáng)制的。該文件必須存在,但最初它是空的。
- unique_subject:如果給出值 yes,則數(shù)據(jù)庫中的有效證書條目必須具有唯一的主題。如果給出值 no,則幾個有效的證書條目可能具有完全相同的主題。默認(rèn)值為 yes,以兼容舊版本(0.9.8 之前)的 OpenSSL。但是,為了使 CA 證書翻轉(zhuǎn)更容易,建議使用值 no,尤其是與 -selfsign 命令行選項結(jié)合使用時。請注意,在某些情況下創(chuàng)建沒有任何主題的證書是有效的。在有多個沒有主題的證書的情況下,這不算作重復(fù)。
- serial:包含下一個要使用的十六進(jìn)制序列號的文本文件。強(qiáng)制的。該文件必須存在并包含有效的序列號。
- crlnumber:包含下一個要使用的十六進(jìn)制 CRL 編號的文本文件。僅當(dāng)此文件存在時,crl 編號才會插入到 CRL 中。如果此文件存在,則它必須包含有效的 CRL 編號。
- x509_extensions:與 -extensions 相同。
- crl_extensions:與 -crlexts 相同。
- preserve:與 -preserveDN 相同
- email_in_dn:與 -noemailDN 相同。如果您想從證書的 DN 中刪除 EMAIL 字段,只需將其設(shè)置為“否”。如果不存在,則默認(rèn)允許在證書的 DN 中提交 EMAIL。
- msie_hack:與 -msie_hack 相同
- policy:與 -policy 相同。強(qiáng)制的。有關(guān)詳細(xì)信息,請參閱政策格式部分。
- name_opt, cert_opt:這些選項允許在要求用戶確認(rèn)簽名時顯示證書詳細(xì)信息的格式。 x509 實用程序 -nameopt 和 -certopt 開關(guān)支持的所有選項都可以在此處使用,除了 no_signame 和 no_sigdump 是永久設(shè)置且無法禁用(這是因為證書尚未在此處簽名,因此無法顯示證書簽名)觀點)。為方便起見,兩者都接受值 ca_default 以產(chǎn)生合理的輸出。如果兩個選項都不存在,則使用早期版本的 OpenSSL 中使用的格式。強(qiáng)烈建議不要使用舊格式,因為它只顯示策略部分中提到的字段,錯誤處理多字符串類型并且不顯示擴(kuò)展名。
- copy_extensions:確定應(yīng)如何處理證書請求中的擴(kuò)展。如果設(shè)置為 none 或此選項不存在,則擴(kuò)展名將被忽略并且不會復(fù)制到證書中。如果設(shè)置為復(fù)制,則請求中存在但尚未存在的任何擴(kuò)展都將復(fù)制到證書中。如果設(shè)置為 copyall,則請求中的所有擴(kuò)展都將復(fù)制到證書中:如果擴(kuò)展已存在于證書中,則首先將其刪除。在使用此選項之前,請參閱警告部分。 此選項的主要用途是允許證書請求為某些擴(kuò)展提供值,例如 subjectAltName。
策略格式
策略部分由一組對應(yīng)于證書 DN 字段的變量組成。如果值為“match”,則字段值必須與 CA 證書中的相同字段匹配。如果該值是“supplied”,那么它必須存在。如果該值為“optional”,則它可能存在。除非設(shè)置了 -preserveDN 選項,否則策略部分中未提及的任何字段都將被靜默刪除,但這更像是一種怪癖,而不是預(yù)期的行為。
SPKAC 格式
-spkac 命令行選項的輸入是 Netscape 簽名的公鑰和質(zhì)詢。這通常來自 HTML 表單中的 KEYGEN 標(biāo)記以創(chuàng)建新的私鑰。但是,可以使用 spkac 實用程序創(chuàng)建 SPKAC。
該文件應(yīng)包含設(shè)置為 SPKAC 值的變量 SPKAC 以及作為名稱值對的所需 DN 組件。如果您需要兩次包含相同的組件,則可以在其前面加上一個數(shù)字和一個“.”。
處理 SPKAC 格式時,如果使用 -out 標(biāo)志,則輸出為 DER,但如果發(fā)送到 stdout 或使用 -outdir 標(biāo)志,則輸出為 PEM 格式。
示例
注意:這些示例假設(shè) ca 目錄結(jié)構(gòu)已經(jīng)設(shè)置并且相關(guān)文件已經(jīng)存在。這通常涉及使用 req、序列號文件和空索引文件創(chuàng)建 CA 證書和私鑰,并將它們放在相關(guān)目錄中。
要使用 demoCA、demoCA/private 和 demoCA/newcerts 目錄下的示例配置文件。 CA 證書將復(fù)制到 demoCA/cacert.pem,并將其私鑰復(fù)制到 demoCA/private/cakey.pem。將創(chuàng)建一個文件 demoCA/serial,其中包含例如“01”和空索引文件 demoCA/index.txt。
簽署證書請求:
openssl ca -in req.pem -out newcert.pem使用 CA 擴(kuò)展簽署證書請求:
openssl ca -in req.pem -extensions v3_ca -out newcert.pem生成 CRL
openssl ca -gencrl -out crl.pem簽署幾個請求:
openssl ca -infiles req1.pem req2.pem req3.pem認(rèn)證 Netscape SPKAC:
openssl ca -spkac spkac.txt一個示例 SPKAC 文件(為清楚起見,SPKAC 行已被截斷):
SPKAC=MIG0MGAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAn7PDhCeV/xIxUg8V70YRxK2A5 CN=Steve Test emailAddress=steve@openssl.org 0.OU=OpenSSL Group 1.OU=Another Group帶有 ca 相關(guān)部分的示例配置文件:
[ ca ] default_ca = CA_default # The default ca section [ CA_default ] dir = ./demoCA # top dir database = $dir/index.txt # index file. new_certs_dir = $dir/newcerts # new certs dir certificate = $dir/cacert.pem # The CA cert serial = $dir/serial # serial no file #rand_serial = yes # for random serial#'s private_key = $dir/private/cakey.pem# CA private key RANDFILE = $dir/private/.rand # random number file default_days = 365 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = md5 # md to use policy = policy_any # default policy email_in_dn = no # Don't add the email into cert DN name_opt = ca_default # Subject name display option cert_opt = ca_default # Certificate display option copy_extensions = none # Don't copy extensions from request [ policy_any ] countryName = supplied stateOrProvinceName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional文件
注意:所有文件的位置都可以通過編譯時選項、配置文件條目、環(huán)境變量或命令行選項進(jìn)行更改。下面的值反映了默認(rèn)值。
./demoCA - main CA directory ./demoCA/cacert.pem - CA certificate ./demoCA/private/cakey.pem - CA private key ./demoCA/serial - CA serial number file ./demoCA/serial.old - CA serial number backup file ./demoCA/index.txt - CA text database file ./demoCA/index.txt.old - CA text database backup file ./demoCA/certs - certificate output file ./demoCA/.rnd - CA random seed information限制
文本數(shù)據(jù)庫索引文件是該過程的關(guān)鍵部分,如果損壞,可能難以修復(fù)。理論上可以從所有頒發(fā)的證書和當(dāng)前的 CRL 重建索引文件:但是沒有選擇這樣做。
目前不支持 V2 CRL 功能,如 delta CRL。
盡管可以同時輸入和處理多個請求,但只能包含一個 SPKAC 或自簽名證書。
BUGS
當(dāng)存在大量證書時,使用內(nèi)存中的文本數(shù)據(jù)庫可能會導(dǎo)致問題,因為顧名思義,數(shù)據(jù)庫必須保存在內(nèi)存中。 ca 命令確實需要重寫或在命令或接口級別公開所需的功能,以便更友好的實用程序(perl 腳本或 GUI)可以正確處理事情。腳本 CA.pl 有一點幫助,但不是很多。 請求中不存在于策略中的任何字段都將被靜默刪除。如果使用 -preserveDN 選項,則不會發(fā)生這種情況。如 RFC 所建議的,要強(qiáng)制 DN 中不存在 EMAIL 字段,無論請求主題的內(nèi)容如何,都可以使用 -noemailDN 選項。行為應(yīng)該更加友好和可配置。 通過拒絕驗證證書來取消某些命令會創(chuàng)建一個空文件。
WARNINGS
ca 命令很古怪,有時完全不友好。
ca 實用程序最初的目的是作為如何在 CA 中做事的示例。它本身不應(yīng)該用作完整的 CA:盡管如此,有些人正在為此目的使用它。
ca 命令實際上是一個單用戶命令:不會對各種文件進(jìn)行鎖定,并且嘗試在同一個數(shù)據(jù)庫上運行多個 ca 命令可能會產(chǎn)生不可預(yù)知的結(jié)果。
應(yīng)謹(jǐn)慎使用 copy_extensions 選項。如果不小心,則可能存在安全風(fēng)險。例如,如果一個證書請求包含一個帶有 CA:TRUE 的 basicConstraints 擴(kuò)展,并且 copy_extensions 值設(shè)置為 copyall,并且在顯示證書時用戶沒有發(fā)現(xiàn)這一點,那么這將給請求者一個有效的 CA 證書。
這種情況可以通過將 copy_extensions 設(shè)置為 copy 并在配置文件中包含帶有 CA:FALSE 的 basicConstraints 來避免。然后,如果請求包含 basicConstraints 擴(kuò)展,它將被忽略。
建議還包括其他擴(kuò)展的值,例如 keyUsage 以防止請求提供自己的值。
可以對 CA 證書本身施加額外的限制。例如,如果 CA 證書具有:
basicConstraints = CA:TRUE, pathlen:0HISTORY
從 OpenSSL 1.1.1 開始,程序遵循 RFC5280。具體來說,如果日期早于 2049 年(包括),證書有效期(由 -startdate、-enddate 和 -days 中的任何一個指定)將被編碼為 UTCTime,如果日期在 2050 年或更晚,則將被編碼為 GeneralizedTime。
SEE ALSO
req(1), spkac(1), x509(1), CA.pl(1), config(5), x509v3_config(5)
COPYRIGHT
Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the “License”). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html.
譯者修改的一個配置文件
參考自:《openssl-cookbook-中文版》 1.4 創(chuàng)建私有證書頒發(fā)機(jī)構(gòu)
name = gw_ca default_ca = CA_default # The default ca section[ca_dn] countryName = "Mars" stateOrProvinceName = "Corbett" localityName = "Corbett" organizationName = "Cosmos Corporation" organizationalUnitName = "Cosmos Corporation Mars part " commonName = "dacao"[CA_default] home = . database = $home/db/index # 要使用的文本數(shù)據(jù)庫文件。強(qiáng)制的。該文件必須存在,但最初它是空的。 serial = $home/db/serial # 包含下一個要使用的十六進(jìn)制序列號的文本文件。強(qiáng)制的。該文件必須存在并包含有效的序列號。 certificate = $home/${name}_cert.pem private_key = $home/private/${name}_private_key.pem # RANDFILE = $home/private/random new_certs_dir = $home/certs # 定義證書放置位置。 # unique_subject = no # copy_extensions = none default_days = 3650 # default_crl_days = 365 default_md = sha256 policy = policy_c_o_match # 與 -policy 相同。強(qiáng)制的。[policy_c_o_match] # 策略全部為可選,沒有進(jìn)行限制 countryName = optional stateOrProvinceName = optional organizationName = optional organizationalUnitName = optional commonName = optional emailAddress = optional[req] default_bits = 2048 # 不使用-key選項時,-new根據(jù)該提示信息,生成RSA秘鑰 encrypt_key = no # 秘鑰不進(jìn)行加密 default_md = sha256 utf8 = yes # 如果設(shè)置為值 yes 則字段值將被解釋為 UTF8 字符串,默認(rèn)情況下它們被解釋為 ASCII。這意味著字段值,無論是從終端提示還是從配置文件中獲取,都必須是有效的 UTF8 字符串。 prompt = no # 如果設(shè)置為值 no 這將禁用證書字段的提示,并且直接從配置文件中獲取值。它還更改了 distinct_name 和 attributes 部分的預(yù)期格式。這個必須有,否則會報錯:https://github.com/openssl/openssl/issues/3536 distinguished_name = ca_dn req_extensions = ca_ext # 添加到證書請求的擴(kuò)展列表中[ca_ext] basicConstraints = critical,CA:true # CA證書必須設(shè)置為true;用戶證書必須設(shè)置成false # keyUsage = critical,keyCertSign,cRLSign # subjectKeyIdentifier = hash下面,我們使用配置文件,創(chuàng)建CA。
? mkdir mkdir certs db private ? chmod 700 private ? touch db/index # 保存簽發(fā)過的證書的索引 ? openssl rand -hex 16 > db/serial # 自簽名證書的序列號# 生成秘鑰和證書簽名申請文件 ? openssl req -new -config ca.conf -out gw_ca_csr.pem -keyout private/gw_ca_private_key.pem# 創(chuàng)建自簽名證書 ? openssl ca -selfsign -config ca.conf -extensions ca_ext -in gw_ca_csr.pem -out gw_ca_cert.pem總結(jié)
以上是生活随笔為你收集整理的openssl ca文档翻译的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring 注解AOP 入门
- 下一篇: 编译源码 JAVA out of mem