利用CA私鑰和證書建立中間CA

2022-03-29 01:36:47 字數 4190 閱讀 6748

本文借助實驗環境下建立的root ca私鑰和證書進一步建立中間ca。為了便於區分,我們將建立中間ca(intermediate ca)的ca稱為根ca(root ca)。

關於如何使用openssl建立root ca。

中間ca是root ca的**,其證書由root ca簽發,同時中間ca能夠代表根ca簽發使用者證書,由此建立起信任鏈。

建立中間ca的好處是即使中間ca的私鑰洩露,造成的影響也是可控的,我們只需要使用root ca撤銷對應中間ca的證書即可。此外root ca的私鑰可以離線妥善儲存,只需要在撤銷和更新中間ca證書時才會使用。

我們基於已經建立的root ca建立自己的中間ca,與前文保持一致,假定證書根目錄為/etc/pki/ca/目錄,將中間ca的證書相關資訊存放在自己的目錄中,為了體現信任鏈的傳遞邏輯,在/etc/pki/ca/下建立對應目錄即可,這裡假設中間ca的證書目錄是/etc/pki/ca/intermediate/。

初始化證書目錄的過程與建立root ca時並無二致:

# mkdir /etc/pki/ca/intermediate

# cd /etc/pki/ca/intermediate

# mkdir

certs crl newcerts private

# chmod

700private

# touch

index.txt

# echo

1000 > serial

接下來建立中間ca的私鑰,採用aes-256演算法加密中間ca的私鑰,中途會讓我們輸入加密金鑰,最後修改中間ca的私鑰訪問許可權:

# cd /etc/pki/ca

# openssl genrsa -aes256 -out \

intermediate/private/intermediate.key.pem 4096

enter pass phrase for intermediate.key.pem: secret

verifying - enter pass phrase for intermediate.key.pem: secret

# chmod 400 intermediate/private/intermediate.key.pem

中間ca要向root ca申請公鑰證書,就要首先產生乙個csr(證書簽名請求,certificate signing request都有作用)格式的請求檔案,將其傳送給root ca後等待其對中間ca的審查。

將建立root ca時使用的配置檔案拷貝到中間ca證書目錄下,該配置檔案在生成csr檔案和後續簽發使用者證書時都有用。

# cp /etc/pki/ca/root_ca.cnf \

/etc/pki/ca/intermediate/intermediate_ca.cnf

# cd /etc/pki/ca/intermediate

# vim intermediate_ca.cnf

...[ ca_default ]

dir = /etc/pki/ca/intermediate

certs = $dir/certs

private = $dir/private

certificate = $certs/intermediate.cert.pem

private_key   = $private/intermediate.key.pem

今後我們每次使用中間ca建立新的證書時,以」-config /etc/pki/ca/intermediate/intermediate_ca.cnf「 的形式告訴openssl中間ca的資訊。

intermediate_ca.cnf預設申請的有效期是365天,如果想要修改這個時長,可以在[ ca_default ]的"default_days"字段進行修改。

接下來就可以生成csr檔案了:

# cd /etc/pki/ca/intermediate

# openssl req -config intermediate_ca.cnf \

-sha256 -new -key private/intermediate.key.pem \

-out certs/intermediate.csr.pem

隨後系統會要求我們輸入中間ca的私鑰密碼,設定中間ca的一些身份資訊等等,注意」organization name「一項一定要與root ca時設定的相同。

正確輸入中間ca的身份資訊後我們就得到了中間ca的csr。

接下來我們用root ca同意中間ca的請求,因為我們將使用root ca的私鑰簽名中間ca的證書,這時系統會要求我們輸入root ca的私鑰密碼,選擇簽名證書如下:

# cd /etc/pki/ca

# openssl ca \

-config root_ca.cnf \-extensions v3_ca -notext -md sha256 \

-in intermediate/certs/intermediate.csr.pem \

-out intermediate/certs/intermediate.cert.pem

using configuration from root_ca.cnf

enter pass phrase for /etc/pki/ca/private/ca.key.pem:

check that the request matches the signature

signature ok

certificate details:

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

# 

chmod

444 intermediate/certs/intermediate.cert.pem

到此我們已經為中間ca生成了公鑰證書,下面我們可以驗證一下該證書的真實性:

# openssl verify -cafile /etc/pki/ca/certs/ca.cert.pem \

/etc/pki/ca/intermediate/certs/intermediate.cert.pem

/etc/pki/ca/intermediate/certs/intermediate.cert.pem: ok

系統顯示"ok",說明我們頒發給中間ca的證書是有效的。

至此我們可以採取類似中間ca獲得證書的方式為普通客戶頒發證書了,只不過這時我們以中間ca的身份進行。由於中間ca的證書也是經過上一級ca認證的,所以以後驗證使用者證書時必須將完整的ca證書鏈提供給openssl。

所以我們的工作還沒有完成,接下來就構造這樣的ca證書鏈,事實上非常簡單,將root ca的證書追加到中間ca證書後即可。生產環境下各級ca的證書都是公開的,因此將其依次追加在一起生成乙個檔案,就是我們所說的」ca證書鏈「了。

# cd /etc/pki/ca

# cat intermediate/certs/intermediate.cert.pem \

certs/ca.cert.pem > intermediate/certs/ca-chain.cert.pem

# chmod

444 intermediate/certs/ca-chain.cert.pem

今後想要驗證由我們的中間ca頒發的證書,比如:www.example.com.cert.pem,這樣即可:

# openssl verify -cafile /etc/pki/ca/intermediate/certs/ca-chain.cert.pem \

/etc/pki/ca/intermediate/certs/www.example.com.cert.pem

/etc/pki/ca/intermediate/certs/www.example.com.cert.pem: ok

至此,我們已經成功建立了中間ca,趕緊用它去簽發使用者證書吧,雖然只是實驗環境,別忘了進行必要的審核哦!

利用CA私鑰和證書建立中間CA

本文借助實驗環境下建立的root ca私鑰和證書進一步建立中間ca。為了便於區分,我們將建立中間ca intermediate ca 的ca稱為根ca root ca 關於如何使用openssl建立root ca。中間ca是root ca的 其證書由root ca簽發,同時中間ca能夠代表根ca簽發...

Linux 建立CA證書

有兩台機器乙個負責頒發 157 乙個負責申請 105 整體思路 1.搭建ca 2.傳送申請 3.頒發證書 選項說明 new 生成新證書簽署請求 x509 專用於ca生成自簽證書 key 生成請求時用到的私鑰檔案 days n 證書的有效期限 out path to somecertfile 證書的儲...

使用openssl建立CA和申請證書

在開始申請證書之前,我們都知道要申請自己的數字證書必須向ca certficate authority 機構提交csr certficate signing request 證書申請,下面我們就自己建立ca並利用建立好的ca給客戶頒發證書 注意 如果對各證書檔名或者openssl不太了解的,可以先看...