Tôi đang sử dụng lib Bouncycastle để tạo chứng chỉ từ các yêu cầu PKCS10 bằng cách sử dụng lớp X509v3CertificateBuilder.X500Principal Name Name to
Nó trả về việc tạo đối tượng X509CertificateHolder chứa chứng chỉ được tạo. Nếu tôi gọi getIssuer trên trình giữ, nó sẽ trả về tên người phát hành theo thứ tự đúng (cùng trả về nếu tôi gọi getSubjectX500Principal() trên chứng chỉ của tổ chức phát hành), nếu tôi phân tích phiên bản được mã hóa từ người sở hữu bằng cách sử dụng java CertificateFactory, Phương thức getIssuerX500Principal() của chứng chỉ được tạo ra trả về DN theo thứ tự ngược lại, có gì sai?
Dưới đây là một ví dụ mã của những gì tôi đang cố gắng để làm:
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