当前位置: 首页 > 面试题库 >

如何从Java的X509Certificate中提取CN?

倪振海
2023-03-14
问题内容

我正在使用SslServerSocket和客户端证书,并希望从客户端的SubjectDN中提取CN X509Certificate

目前,我打电话,cert.getSubjectX500Principal().getName()但这当然给了我客户端的总格式化DN。由于某种原因,我只是对CN=theclientDN 感兴趣。有没有一种方法可以提取DN的这一部分而无需自己解析String?


问题答案:

这是新的不推荐使用的BouncyCastle API的一些代码。您将同时需要bcmail和bcprov发行版。

X509Certificate cert = ...;

X500Name x500name = new JcaX509CertificateHolder(cert).getSubject();
RDN cn = x500name.getRDNs(BCStyle.CN)[0];

return IETFUtils.valueToString(cn.getFirst().getValue());


 类似资料:
  • 我想从Kafka中提取CN。如何用Java从X509Certificate中提取CN?帮助我解决了这个问题,但问题是从X509certificate中提取CN,我花了很多时间来为我自己的问题找到正确的解决方案。我想我的解决方案可以帮助某人更快地得到正确的答案。

  • 问题内容: 如何转换为日期格式? 例如,我有这样的UUID 如何将其转换为日期格式? 我试过了 我得到的输出:4294744/11/02 同样的情况对于perl来说很好用 问题答案: 的javadoc对timestamp字段说以下内容: 60位时间戳值是根据此UUID的time_low,time_mid和time_hi字段构造的。 自1582年10月15日午夜以来, 最终的时间戳 以100纳秒为单

  • 文件(exe)位于JAR文件中,该文件使用Launch4J包装为exe。 我的可执行文件(包装在EXE中的JAR文件):

  • 问题内容: 是否有可能从byte []生成java.security.cert.X509Certificate? 问题答案: 当然。 证书对象可以由CertificateFactory的一个实例创建- 尤其是配置为创建X509证书的一个实例。可以这样创建: 然后,您需要向其传递一个包含证书字节的InputStream。这可以通过将字节数组包装在ByteArrayInputStream中来实现:

  • 下面是演示类 我有一个演示实例: 对于新的,我需要从Demo了解字段,因为我需要一种通用的方法来获得任何具有基本字段/简单字段的类的对象数组

  • 问题内容: 如何仅从输入字符串中提取数字值? 例如,输入字符串可能像这样: 我只想要数字值,即和。所有字母和特殊字符将被丢弃。 问题答案: