如何修复错误“主题类别类型无效。”

问题描述 投票:0回答:2

我使用java编写CA模块来创建和签署证书。当我运行代码时,出现错误“主题类类型无效。”,但在目标文件夹中我可以获得两个文件:rooca.crtrootca.pfx。证书包含我设置的信息。也许代码结果是正确的,但我仍然想修复错误。

异常详情:

java.security.cert.CertificateException: Subject class type invalid.
at sun.security.x509.X509CertInfo.setSubject(Unknown Source)
at sun.security.x509.X509CertInfo.set(Unknown Source)
at com.koal.Test.createIssueCert(Test.java:124)
at com.koal.Test.main(Test.java:353)

我的部分代码:

java pki ca
2个回答
10
投票

我也遇到了类似的问题。此代码在 Java 1.6 上运行良好,但在 Java 1.8 上运行时会因此异常而失败。

我可以通过实施以下解决方案来解决此问题。

事实上,在Java 1.8中,似乎不必再将X500Name封装成CertificateSubjectName或CertificateIssuerName了。您可以将 X500Name 对象直接存储在 X509CertInfo 实例中。


3
投票

改变这个

info.set(X509CertInfo.SUBJECT, new CertificateSubjectName(subject));
info.set(X509CertInfo.SUBJECT, subject);

它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.