我想根据 CRL 验证客户端提供的 X509 证书,以查看它是否已被吊销。我已成功实例化 a java.security.cert.X509CRL
,但在检索会话证书时遇到问题:
try {
SSLSocket s = (SSLSocket) serverSocket.accept();
s.setSoTimeout(TIMEOUT_RW * 1000);
s.startHandshake();
SSLSession session = s.getSession();
X509Certificate[] cert = session.getPeerCertificateChain();
if (crl.isRevoked(cert[0])) {
System.err.println("Attempted to stablish connection using revoked certificate");
} else {
...
}
} catch (Exception ex) {
System.err.println("Something went wrong");
}
SSLSession 属于javax.net.ssl
包,它的方法getPeerCertificateChain()
返回一个javax.security.cert.X509Certificate[]
,它不能转换为java.security.cert.X509Certificate[]
我需要提供的java.security.cert.X509CRL
. 怎么做到呢?