创建CA、申请证书、吊销证书

简介:

证书是证明一个机构身份的“身份证”,由权威、值得信任的组织担任第三方来发放证书,这种组织称为CA,例如GlobalSign等;

企业向CA申请证书,CA审核通过才会颁发证书,有了受信任的证书我们在访问企业网站才不会报出告警信息;

证书机制是pki体系的一个组成部分使用到了非对称加密的技术。

接下来的实验分四个部分配置根CA、子CA和客户端


准备阶段:

1
<span style= "font-size:16px;" > /etc/pki/tls/openssl .cnf   // 此目录存放CA创建的规则<br>< /span >

此文件有一些配置我们需要注意,具体如下图

wKioL1m06TPTRxblAALNw8wKXCw350.png 

图一


wKiom1m06gOCm2wVAAI1MkmqpDU109.png

图二

默认CA目录

1
2
3
4
/etc/pki/CA/    // 所有资料全存放在此目录下
/etc/pki/CA/certs/    // 存放CA证书
/etc/pki/CA/crl/    // 存放证书吊销列表
/etc/pki/CA/index .txt   // 存放可用、不可用证书的数据库

新CA目录

1
2
3
4
5
6
/etc/pki/CA/newcerts    // 存放CA的新目录
/etc/pki/CA/cacert .pem   // 生成的自签名证书
/etc/pki/CA/serial   // 下个证书的编号,16进制,多从00或01开始
/etc/pki/CA/crlnum   // 下一个吊销证书的编号
/etc/pki/CA/crl .pem   // 下一个吊销列表
/etc/pki/CA/private/cakey .pem   // 密钥

匹配策略

1
2
3
match   // 必须匹配,默认是国家、州(省)、组织名称
supplied   // 必填,为哪个主机申请证书,一般对应域名
optional   // 可选

后续操作,会对这些规则再作说明

实验环境:A、B、C三台机器,A是根CA,B是子CA,C是客户

第一部分:在A机器上创建根CA,本实验CA都是私有的

1、生成基本文件

1
2
3
touch  /etc/pki/CA/index .txt   // 生成数据库文件,记录有效、无效的证书信息
echo  00 >  /etc/pki/CA/serial  
// 生成存放证书编号的文件,00是期望的下一个证书编号

2、根CA自签证书

2.1 生成私钥

1
2
3
4
5
cd  /etc/pki/CA
( umask  066;openssl genrsa -out private /cakey .pem 1024 )
//umask 只在子进程有效,目的是保证私钥的安全
// 生成的私钥文件必须是cakey.pem这是固定格式
//1024 是私钥的长度,也可以取2048或者4096

2.2 根据私钥生成自签名证书

1
2
3
4
5
6
7
8
openssl  req -new -x509  -key private /cakey .pem  -days 3650 -out cacert.pem   // 有效期10年
  req:请求的意思, man  req可以查到更多帮助
-new: 生成新证书签署请求
-x509: 专用于CA生成自签证书
-key: 生成请求时用到的私钥文件
-days :证书的有效期限天数
-out : 证书的保存路径,cacert.pem是固定的
//cacert .pem就是根CA自己的证书,因为已经是最顶端,因此根CA只能自己证明自己的身份

第二部分:在B机器上创建子CA

根CA自证身份,没有上级。但是子CA则是由上级根CA证明身份;

在生成证书和请求文件时需要填写基本信息,填写的内容以及必填和选填的内容在图二已经说明。可以参考“准备阶段”的“配置策略”;

客户端申请证书其填写的基本信息必须与CA存放的信息一一匹配,否则CA无法为其生成证书,会报错的

1、生成基本文件,含义与第一部分步骤1相同

1
2
touch  /etc/pki/CA/index .txt  
echo  00 >  /etc/pki/CA/serial

2、向根CA申请证书

2.1 在子CA生成密钥

1
2
cd  /etc/pki/CA/
( umask  066; openssl genrsa -out private /cakey .pem 1024)

2.2 生成证书申请文件

1
2
3
openssl req -new -key private /subca .key -out subca.csr
// 还可以用-days指定申请期限,但是意义不大
注意:默认国家,省,公司名称三项必须和根CA一致

2.3 将subca.csr发给根CA

2.4 根CA检查无误后,签发证书,并把证书传给子CA

1
2
3
4
5
6
7
openssl  ca - in  subca.csr  -out certs /cacert .pem -days 365   // 有效期1年
// 建议将证书放在certs这个目录下,方便管理
openssl  x509 - in  cacert.pem   -noout -text|issuer|subject|serial|dates
// 查看证书中的信息,text是全部信息,其他参数分别对应部分信息
openssl  ca -status 00   // 查看生成的第一个证书的状态
注意:
本处cacert.pem也可以改成别的名字,但是根CA把证书传给子CA时,必须命名为cacert.pem


第三部分:客户机C机器申请证书

1、生成客户端私钥

1
2
cd  /etc/pki/tls
( umask  066; openssl genrsa -out private /clientca .key 1024)

此处的目录与CA的目录不一样,需要注意

2、生成证书申请文件,并传给子CA

1
openssl  req -new -key private /clientca .key  -out clientca.csr

3、子CA审核通过,颁发证书

1
2
openssl  ca - in  client.csr  -out certs /client .crt -days 100  
// 客户端的证书格式不要求是pem后缀

4、将证书发给客户端

注意:

配置的时候一定要细心,一个字母错误都会导致实验失败。比如把cacert.pem误写成casert.pem就会报出如下错误信息

1
2
3
4
5
Using configuration from  /etc/pki/tls/openssl .cnf
Error opening CA certificate  /etc/pki/CA/cacert .pem
140572789077832:error:02001002:system library:fopen:No such  file  or directory:bss_file.c:398:fopen( '/etc/pki/CA/cacert.pem' , 'r' )
140572789077832:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
unable to load certificate

就因为一个小小的字母错误导致实验进行不下去,多可怕

第四部分:吊销证书

1、在客户端获取要吊销的证书的serial

1
openssl  x509 - in  client.crt  -noout -serial -subject

2、在CA上,根据客户提交的serial、subject检查index.txt,无误后,吊销证书

1
openssl  ca -revoke newcerts /00 .pem   //00 是证书的编号

3、指定第一个证书吊销列表的编号

1
echo  01 > crlnumber

4、更新证书吊销列表

1
2
openssl  ca -gencrl -out crl /crl .pem
openssl  crl - in  crl /crl .pem  -noout -text   // 查看证书吊销列表

以上生成的证书、吊销证书都可以传到windows上打开(修改后缀),可以更加直观的看到证书的信息

结束



本文转自  a_pan  51CTO博客,原文链接:http://blog.51cto.com/panpangao/1964122

相关文章
|
20天前
|
JSON Kubernetes Linux
Linux环境签发CA证书和K8s需要的证书
Linux环境签发CA证书和K8s需要的证书
23 0
|
2月前
|
安全 网络安全 数据安全/隐私保护
如何申请GeoTrust证书?
如何申请GeoTrust证书?
19 3
|
4月前
|
安全 网络安全 数据安全/隐私保护
Globalsign证书
Globalsign证书
41 0
|
6月前
|
安全 网络安全 数据安全/隐私保护
什么是Sectigo证书?
什么是Sectigo证书?
88 0
|
网络协议 算法 安全
TLS及CA证书申请流程
TLS及CA证书申请流程
TLS及CA证书申请流程
|
算法 网络安全 数据安全/隐私保护
【计算机网络】网络安全 : 公钥分配 ( 公钥使用者 | 公钥分配 | CA 证书格式 | CA 证书吊销 )
【计算机网络】网络安全 : 公钥分配 ( 公钥使用者 | 公钥分配 | CA 证书格式 | CA 证书吊销 )
221 0
|
网络协议 网络安全
免费CA证书申请方法
免费CA证书申请方法,图文详解
10727 0

相关实验场景

更多