解决思路:
- 获取证书Base64
- 生成证书文件
- 读取证书信息
代码如下:
// 取证书 Base64
String cert = request.getHeader("SSLClientCERT");
String certBase64 = cert.replaceAll(X509Factory.BEGIN_CERT, "").replaceAll(X509Factory.END_CERT, "");
byte[] certByte = Base64.decodeBase64(certBase64);
ByteArrayInputStream is = new ByteArrayInputStream(certByte);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
// 生成X509证书
X509Certificate certFile = (X509Certificate) cf.generateCertificate(is);
// 获取使用者
String name = certFile.getSubjectDN().getName();