X509Certificate:getIssuerDN() 和 getSubjectDN() 方法有什么区别

X509Certificate: what is the difference between getIssuerDN() and getSubjectDN() methods

我在 java 中使用 X509Certificate class,当我想获取主题名称时,我尝试:

x509certificate.getIssuerDN().getName();

x509certificate.getSubjectDN().getName();

两种方法的结果相同。那么它们有什么区别呢??

此方法从证书中的两个不同字段读取。它可能 returns 与您的情况相同但不常见。

请参考getIssuerDN() and getSubjectDN()

方法public abstract Principal getIssuerDN() 被诋毁,被 getIssuerX500Principal() 取代。 Returns 作为特定于实现的 Principal 对象的发行者,可移植代码不应依赖它。 从证书中获取颁发者(颁发者专有名称)值。颁发者名称标识签署(并颁发)证书的实体。

颁发者名称字段包含 X.500 专有名称 (DN)。

Name描述了一个由属性组成的分层名称,例如国家名称,以及对应的值,例如US。 AttributeValue组件的类型由AttributeType决定;通常它将是一个目录字符串。 directoryString 通常是 PrintableString、TeletexString 或 UniversalString 之一。

Returns: Principal,其名称是发行者的专有名称。

方法public abstract Principal getSubjectDN() 被诋毁,被 getSubjectX500Principal() 取代。 Returns 作为特定于实现的 Principal 对象的主题,可移植代码不应依赖它。 从证书中获取主题(主题专有名称)值。如果 subject 值为空,则返回 Principal 对象的 getName() 方法 returns 一个空字符串 ("")。

有关 名称 和其他相关定义,请参见 getIssuerDN

Returns: 一个Principal,名字就是主题名。