如何使用OpenSSL撤销证书并生成CRL
时间:2020-02-23 14:40:21 来源:igfitidea点击:
在本文中,将介绍从Keystone吊销证书并生成CRL的步骤。
我们在上一篇文章中向CA颁发的第一个证书仅仅是为了确保CA正常工作的测试证书。
我们可以看到该证书已正确颁发,但是它实际上是我们不希望任何人都可以使用的证书,因此我们需要撤销该证书。
吊销证书
吊销证书是一个简单的过程。
我们只需要吊销证书的副本即可。
即使我们没有保留已颁发的所有证书的副本,我们创建的CA基础结构也会保留。
我们可以通过这种方式获取证书的副本,但是保留自己的副本并为文件命名有意义的名称要容易得多,因为CA仅用包含每个证书的序列号的证书来命名文件。
在上一篇文章中,我生成了一个额外的私钥,可以用来演示本文。
[root@node3 CA]# cp newcerts/01.pem testcert.pem
[root@node3 CA]# openssl ca -revoke testcert.pem Using configuration from /etc/pki/tls/openssl.cnf Enter pass phrase for /etc/pki/CA/private/cakey.pem: Revoking Certificate 01. Data Base Updated
命令行工具会提示我们输入密码。
它正在寻找的密码短语是保护CA私钥的密码短语。
尽管在证书吊销过程中,密钥实际上并未用于任何签名,但仍需要将证书作为CA自己的证书进行验证,并作为安全措施,以确保只有授权使用CA的人才能撤销证书已发行。
证书完全不做任何更改。
实际上,唯一值得注意的更改是对CA的数据库的更改,以表明证书已被撤消。
使用openssl生成CRL
CRL代表证书吊销列表。
CRL包含CA已颁发但尚未过期的所有吊销证书的列表。
吊销证书后,CA声明该证书不再受信任。
请记住,一旦颁发了证书,就无法对其进行修改。
大概是在野外,无法确保存在的证书的每个副本都可以更新。
这是CRL变得重要的地方
[root@node3 CA]# openssl ca -gencrl -out exampleca.crl Using configuration from /etc/pki/tls/openssl.cnf Enter pass phrase for /etc/pki/CA/private/cakey.pem:
[root@node3 CA]# openssl crl -in exampleca.crl -text -noout Certificate Revocation List (CRL): Version 1 (0x0) Signature Algorithm: sha256WithRSAEncryption Issuer: /C=IN/ST=Karnataka/L=bangalore/O=theitroad/OU=TEST/CN=Example/[email protected] Last Update: Apr 17 04:37:17 2019 GMT Next Update: Jan 17 04:37:17 2019 GMT Revoked Certificates: Serial Number: 01 Revocation Date: Apr 17 04:26:14 2019 GMT Signature Algorithm: sha256WithRSAEncryption a7:a9:72:c5:3c:76:31:e1:02:c2:de:ae:46:3e:ff:31:7a:01: c1:92:3f:84:b6:05:be:67:7c:5b:e2:d8:c7:49:cd:7b:81:f8: 76:08:86:9c:1d:e3:80:4e:eb:43:fd:94:7c:e6:0e:59:c7:fe: d2:d6:bd:38:03:b6:61:0c:a3:3e:c9:df:c6:f4:92:39:4a:cd: 8d:9f:c7:93:f8:31:85:23:b0:b3:e0:9b:7d:40:60:02:33:42: 2c:ed:ee:7a:a3:10:75:36:c8:1c:16:42:8e:dc:6c:b7:22:72: 3a:d6:d9:96:9c:98:30:43:10:f4:51:3e:7f:e5:e9:b5:42:ad: 68:dd:2b:d7:c5:fe:ae:aa:e8:96:a6:01:5c:7f:3c:c5:f8:cb: 0d:df:49:93:c3:3e:b5:45:51:bf:9c:68:95:05:9e:93:ee:59: f9:99:d4:1d:8f:39:3a:99:9c:b9:1f:1a:fb:43:84:fe:e3:86: bc:a5:75:f1:53:dd:df:0b:5f:73:2a:98:f5:dd:d6:f7:ab:85: b0:70:0a:cf:ad:19:98:06:5a:a2:bc:fe:e9:35:ed:96:fc:f0: 09:e3:f8:44:d9:76:74:2d:4f:ab:54:05:cf:91:14:f6:9d:5e: fe:b5:99:75:c9:38:e8:7f:a2:72:79:44:37:30:ab:19:ca:fa: ad:43:ab:c6
当我们获得CRL的文本转储时,我们可以看到用于签名的算法,发布它的CA,发布它的时间,发布下一个列表的时间以及所有证书的列表。
它包含。
我们还可以使用crl命令来验证CRL上的签名。