Tag: distinguishedname

X500Principal杰出名称顺序

我正在使用Bouncycastle lib使用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

如何validationJava中的区分名称(DN)?

我试图在java中validationDN。 到目前为止,我已尝试使用Bouncy castle libryvalidation它 private boolean isValidDn(String dn) { try { X509Name name = new X509Name(dn); return true; } catch (IllegalArgumentException e) { } return false; } 此代码正在运行,但问题是此代码允许具有多个CN。 例如:此代码对CN = first,CN = second,ou = org,ou = org2,c = US返回true 但我希望validation只有在有一个cn,ou,o,c等时才返回true。 任何帮助,将不胜感激。