import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.security.cert.CRLException;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509CRL;
import java.security.cert.X509CRLEntry;
import java.text.SimpleDateFormat;
import java.util.Iterator;
import java.util.Set;
public class testCRL {
public static void main(String[] args) throws FileNotFoundException, CertificateException, CRLException {
FileInputStream fis = new FileInputStream("./XXX.crl");
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509CRL aCrl = (X509CRL)cf.generateCRL(fis);
int i = 0;
Set tSet = aCrl.getRevokedCertificates();
Iterator tIterator = tSet.iterator();
while (tIterator.hasNext()) {
X509CRLEntry tEntry = (X509CRLEntry) tIterator.next();
String sn = tEntry.getSerialNumber().toString(16).toUpperCase();
String issName = aCrl.getIssuerDN().toString();
String time = new SimpleDateFormat("yyyyMMddHHmmss").format(tEntry.getRevocationDate());
i++;
if(sn.compareTo("XXX") == 0){
System.out.println(sn);
System.out.println(issName);
System.out.println(time);
System.out.println("***************************");
}
}
}
}
把XXX 替换成自己实际的文件地址,主要是查找当前的证书是不是在被CA 机构吊销了。