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();