3.5.4 CRL
证书可能会由于各种原因失效,如由于申请证书的请求有问题,或者用户使用该证书做了非法操作。这时,证书将立即被置为无效。将证书置为无效的结果就是产生CRL(证书撤销列表)。CA负责发布CRL,其中列出了该CA已经撤销的证书。验证证书时,首先需要查询此列表,然后再考虑接受证书的合法性。
CRL类作为证书抽象列表的抽象类,可通过扩展该抽象类定义专门的CRL类型。
//此类是具有不同格式但很常用的证书撤销列表(CRL)的抽象。
public abstract class CRL
extends Object
❑方法详述
CRL类提供了获取CRL类型的方法:
//返回此CRL的类型
public String getType()
此外,要求其子类必须实现以下方法:
/检查给定的证书是否在此CRL中。如果给定的证书在此CRL中,则返回true,否则返回false。/
public abstract boolean isRevoked(Certificate cert)
//返回此CRL的字符串表示形式
public abstract String toString()
其中,isRevoked()方法是我们最为常用的方法。
❑实现示例
CRL类的实例可通过代码清单3-23方式获得。
代码清单3-23 获得证书撤销列表
//实例化,并指明证书类型为"X.509"。
CertificateFactory certificateFactory=CertificateFactory.getInstance("X.509");
//获得证书输入流
FileInputStream in=new FileInputStream("D:\x.keystore");
//获得证书撤销列表
CRL crl=certificateFactory.generateCRL(in);
//关闭流
in.close();