如果添加依赖关系不是问题,则可以使用Bouncy Castle的 API来处理X.509证书:
import org.bouncycastle.asn1.x509.X509Name;
import org.bouncycastle.jce.PrincipalUtil;
import org.bouncycastle.jce.X509Principal;
...
final X509Principal principal = PrincipalUtil.getSubjectX509Principal(cert);
final Vector> values = principal.getValues(X509Name.CN);
final String cn = (String) values.get(0);
更新资料
在发布此信息时,这就是执行此操作的方法。正如gtrak在评论中提到的那样,这种方法现在已被弃用。请参阅gtrak 使用新的Bouncy Castle API 的更新代码。