创建和管理一个 CA 及证书的生命周期

任务详情

0 使用openssl或者gmssl,提交markdown格式文档和转化后的pdf
1 创建一个根 CA,包括生成私钥和根证书。分析证书和0015,0034标准的符合情况
2 为一台服务器生成一个私钥和证书签署请求(CSR)。
3 使用根 CA 对服务器的 CSR 进行签名,生成服务器证书。
4 吊销该服务器的证书。
5 提交生成的 CA 证书、服务器证书、CSR、吊销列表(CRL)和其他相关文件。

1. 创建根CA(包括生成私钥和根证书)

生成根CA的私钥

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

image

生成根证书 (有效期10年)

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

image

  • 生成的 rootCA.key 是加密的私钥, rootCA.pem 是根CA的证书。

2. 为服务器生成一个私钥和证书签署请求 (CSR)

生成服务器的私钥

openssl genpkey -algorithm RSA -out server.key

image

生成CSR

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

image

  • 在创建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

image

  • 根CA使用自己的私钥来签署服务器的CSR。 -CAcreateserial 选项会创建一个序列号文件,如果是第一次签名需要此选项。

4. index.txt 和 serial 文件创建

1. 创建 demoCA 目录和必要的文件

如果index.txt 文件不存在,需要手动创建它。根据配置文件中的路径,执行以下命令:

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

创建一个初始化序列文件
image

这里 1000 是下一个签发证书的初始序列号,你可以使用任何正整数值。

2. 创建 crlnumber 文件

根据 openssl.cnf 配置文件中指定的路径,执行以下命令:

echo ‘1000’ > ./demoCA/crlnumber

5. 吊销服务器的证书

创建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

image

  • 在执行上面的命令之前,需要根据实际环境修改 openssl.cnf 配置文件,并确保 index.txt 和 serial文件存在并且可写。

image

posted @   HOSF  阅读(85)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示