我正在使用 Bouncycastle 库使用 X509v3CertificateBuilder 类从 PKCS10 请求生成证书。
它返回构建一个包含生成证书的 X509CertificateHolder 对象。如果我在持有人上调用 getIssuer,它会以正确的顺序返回发行人专有名称(如果我在发行人证书上调用 getSubjectX500Principal(),则返回相同的名称),如果我使用 java CertificateFactory 解析持有人的编码版本,则 getIssuerX500Principal () 方法生成的证书以相反的顺序返回 DN,这是怎么回事?
这是我正在尝试做的示例代码:
X509CertificateHolder holder = certBuilder.build(sigGen);
holder.getIssuer(); //Returns the DN in the correct order (same as in issuer cert)
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate) certFactory.generateCertificate(new ByteArrayInputStream(holder.getEncoded()));
cert.getIssuerX500Principal().getName(); //Returns issuer DN in reverse order