CA机构能够签发证书,同样也存在机制宣布以往签发的证书无效。使用者私钥丢失,使用者申请让证书无效等情况,CA机构需要废弃该证书。
主要存在两类机制:CRL 与 OCSP。
CRL(Certificate Revocation List)
证书吊销列表是一个单独的文件,该文件包含了 CA机构 已经吊销的证书序列号与吊销日期;
证书中一般会包含一个 URL 地址 CRL Distribution Point,通知使用者去哪里下载对应的 CRL 以校验证书是否吊销。
该吊销方式的优点是不需要频繁更新,但是不能及时吊销证书,因为 CRL 更新时间一般是几天,这期间可能已经造成了极大损失。
OCSP(Online Certificate Status Protocol)
证书状态在线查询协议,一个实时查询证书是否吊销的方式。
请求者发送证书的信息并请求查询,服务器返回正常、吊销或未知中的任何一个状态。
证书中一般也会包含一个 OCSP 的 URL 地址,要求查询服务器具有良好的性能。
部分 CA 或大部分的自签 CA (根证书)都是未提供 CRL 或 OCSP 地址的,对于吊销证书会是一件非常麻烦的事情。
校验证书的有效期是否已经过期
3.4、校验证书域名是否一致校验证书域名是否一致:核查证书域名是否与当前的访问域名匹配。
这里核验的是我们请求的域名 是否与证书文件中DNS标签下所列的域名相匹配;
注:
具体的证书文件举例,请查看第四节 “四、证书举例” 。
一种错误的写法:
Android 软件开发中,我们经常会遇到以下代码,用来忽略证书的域名验证,其实这是一种不安全的写法:
// 对于自签名证书,用以下代码来忽略证书的域名验证 HostnameVerifier hostnameVerifier = new HostnameVerifier() { @Override public boolean verify(String urlHostName, SSLSession session) { // 忽略证书的域名验证 return true; } }; 四、证书举例这里以百度的Https证书举例:
Certificate: Data: Version: 3 (0x2) Serial Number: 72:58:78:36:6e:9f:56:e8:1d:41:88:48 Signature Algorithm: sha256WithRSAEncryption Issuer: C=BE, O=GlobalSign nv-sa, CN=GlobalSign Organization Validation CA - SHA256 - G2 Validity Not Before: Apr 2 07:04:58 2020 GMT Not After : Jul 26 05:31:02 2021 GMT Subject: C=CN, ST=beijing, L=beijing, OU=service operation department, O=Beijing Baidu Netcom Science Technology Co., Ltd, CN=baidu.com Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:c1:a9:b0:ae:47:1a:d2:57:eb:1d:15:1f:6e:5c: b2:e4:f8:0b:20:db:ea:00:df:29:ff:a4:6b:89:26: 4b:9f:23:2f:ec:57:b0:8a:b8:46:40:2a:7e:bc:dc: 5a:45:97:4f:ad:41:0e:bc:20:86:4b:0c:5d:55:21: 47:e2:31:3c:57:a7:ec:99:47:eb:47:0d:72:d7:c8: 16:54:75:ef:d3:45:11:0f:4b:ce:60:7a:46:5c:28: 74:ae:8e:1b:be:d8:70:66:7b:a8:93:49:28:d2:a3: 76:94:55:de:7c:27:f2:0f:f7:98:0c:ad:86:da:c6: ae:fd:9f:f0:d9:81:32:9a:97:e3:21:ee:04:92:96: e4:78:11:e5:c4:10:0e:10:31:7a:4a:97:a0:eb:c7: 9b:c4:da:89:37:a9:c3:37:d7:56:b1:7f:52:c7:d9: 26:0a:d6:af:38:16:b1:6d:fb:73:79:b1:68:79:03: 90:eb:88:7b:8c:48:91:98:51:a5:07:94:86:a5:78: 46:79:8f:58:9b:e9:35:59:a7:f1:7b:57:31:0a:90: cf:24:ce:0d:24:e7:92:b2:6a:e9:e6:96:37:0a:b8: 7c:87:2f:74:d2:5c:e8:4b:0a:5f:66:18:a7:41:86: cf:26:a6:08:8e:a5:49:17:92:53:b3:91:a5:cf:53: b0:31 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Key Usage: critical Digital Signature, Key Encipherment Authority Information Access: CA Issuers - URI: OCSP - URI: X509v3 Certificate Policies: Policy: 1.3.6.1.4.1.4146.1.20 CPS: https://www.globalsign.com/repository/ Policy: 2.23.140.1.2.2 X509v3 Basic Constraints: CA:FALSE X509v3 CRL Distribution Points: Full Name: URI: X509v3 Subject Alternative Name: DNS:baidu.com, DNS:baifubao.com, DNS:, DNS:, DNS:mct.y.nuomi.com, DNS:apollo.auto, DNS:dwz.cn, DNS:*.baidu.com, DNS:*.baifubao.com, DNS:*.baidustatic.com, DNS:*.bdstatic.com, DNS:*.bdimg.com, DNS:*.hao123.com, DNS:*.nuomi.com, DNS:*.chuanke.com, DNS:*.trustgo.com, DNS:*.bce.baidu.com, DNS:*.eyun.baidu.com, DNS:*.map.baidu.com, DNS:*.mbd.baidu.com, DNS:*.fanyi.baidu.com, DNS:*.baidubce.com, DNS:*.mipcdn.com, DNS:*.news.baidu.com, DNS:*.baidupcs.com, DNS:*.aipage.com, DNS:*.aipage.cn, DNS:*.bcehost.com, DNS:*.safe.baidu.com, DNS:*.im.baidu.com, DNS:*.baiducontent.com, DNS:*.dlnel.com, DNS:*.dlnel.org, DNS:*.dueros.baidu.com, DNS:*.su.baidu.com, DNS:*.91.com, DNS:*.hao123.baidu.com, DNS:*.apollo.auto, DNS:*.xueshu.baidu.com, DNS:*.bj.baidubce.com, DNS:*.gz.baidubce.com, DNS:*.smartapps.cn, DNS:*.bdtjrcv.com, DNS:*.hao222.com, DNS:*.haokan.com, DNS:*.pae.baidu.com, DNS:*.vd.bdstatic.com, DNS:click.hm.baidu.com, DNS:log.hm.baidu.com, DNS:cm.pos.baidu.com, DNS:wn.pos.baidu.com, DNS:update.pan.baidu.com X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Authority Key Identifier: keyid:96:DE:61:F1:BD:1C:16:29:53:1C:C0:CC:7D:3B:83:00:40:E6:1A:7C X509v3 Subject Key Identifier: ...... 五、参考TSL:
https://tools.ietf.org/html/rfc5246
SSL/TSL 原理:
https://www.cnblogs.com/chenjingquan/p/10531305.html
TLS/SSL握手过程
https://blog.csdn.net/hherima/article/details/52469674