建立和管理一個 CA 及證書的生命週期

6666666mjz發表於2024-05-31

0 使用openssl或者gmssl,提交markdown格式文件和轉化後的pdf
1 建立一個根 CA,包括生成私鑰和根證書。分析證書和0015,0034標準的符合情況
2 為一臺伺服器生成一個私鑰和證書籤署請求(CSR)。
3 使用根 CA 對伺服器的 CSR 進行簽名,生成伺服器證書。
4 吊銷該伺服器的證書。5 提交生成的 CA 證書、伺服器證書、CSR、吊銷列表(CRL)和其他相關檔案。

0 使用openssl或者gmssl,提交markdown格式文件和轉化後的pdf

1 建立一個根 CA,包括生成私鑰和根證書。分析證書和0015,0034標準的符合情況

生成根CA的私鑰

openssl genpkey -algorithm RSA -out rootCA.key -aes256

生成根證書 (有效期10年)

openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -out rootCA.pem

生成的 rootCA.key 是加密的私鑰, rootCA.pem 是根CA的證書。

2 為一臺伺服器生成一個私鑰和證書籤署請求(CSR)。

生成伺服器的私鑰
openssl genpkey -algorithm RSA -out server.key
生成CSR

openssl req -new -key server.key -out server.csr

在建立CSR時,同樣你需要提供伺服器的相關資訊(如組織名、常用名(CN)等)。

3 使用根 CA 對伺服器的 CSR 進行簽名,生成伺服器證書。

使用根CA簽名CSR並生成伺服器證書

openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days365 -sha256

根CA使用自己的私鑰來簽署伺服器的CSR。 -CAcreateserial 選項會建立一個序列號檔案,如果是第一次簽名需要此選項。

index.txt 和 serial 檔案建立
1. 建立 demoCA 目錄和必要的檔案
如果index.txt 檔案不存在,需要手動建立它。根據配置檔案中的路徑,執行以下命令:

mkdir -p ./demoCA/newcerts
touch ./demoCA/index.txt
echo ‘1000’ > ./demoCA/serial

建立一個初始化序列檔案
這裡 1000 是下一個簽發證書的初始序列號,你可以使用任何正整數值。
2. 建立 crlnumber 檔案
根據 openssl.cnf 配置檔案中指定的路徑,執行以下命令:

echo ‘1000’ > ./demoCA/crlnumber

4 吊銷該伺服器的證書。

建立CA的吊銷列表 (CRL)

openssl ca -config /etc/ssl/openssl.cnf -revoke server.crt -keyfile rootCA.key -cert rootCA.pem
openssl ca -gencrl -config /etc/ssl/openssl.cnf -keyfile rootCA.key -cert rootCA.pem -out crl.pem

在執行上面的命令之前,需要根據實際環境修改 openssl.cnf 配置檔案,並確保 index.txt 和 serial檔案存在並且可寫。

相關文章