是否可以在不使用Bouncy Castle X509V*CertificateGenerator类的情况下巧妙地创建Java代码的X509证书?
(tl,dr 最后) 我们有一个生成自签名 SSL 证书的小方法,它显然依赖于sun.security.x509. 目前我们仍在使用 JDK8 构建它,因此,即使代码库的其余部分(它只是一个小的、单一的库)是使用 JDK11 构建并使用 JVM11 运行的。
不幸的是,主 JDK 中没有替换,按照(并且CertificateFactory几乎没有生成证书,与 javadoc 声明的相反......):
一种选择是使用 BouncyCastle,但这是我们真正不需要的额外 4MB,特别是对于这么小的任务,所以我正在考虑访问它的方法
从我所看到的,包和所需的类仍然是包,相关的类仍然存在(参见sun.security.x509github但在构建它时(使用 maven)我得到错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project: Compilation failure: Compilation failure:
[ERROR] OldSelfSignedCertificateGenerator.java:[20,25] package sun.security.x509 does not exist
[ERROR] OldSelfSignedCertificateGenerator.java:[71,45] cannot find symbol
[ERROR] symbol: class X509CertInfo
[ERROR] location: class OldSelfSignedCertificateGenerator
Run Code Online (Sandbox Code Playgroud)
我正在搜索并添加:
<arg>--add-exports</arg><arg>java.base/sun.security.x509=ALL-UNNAMED</arg>
Run Code Online (Sandbox Code Playgroud)
到maven-compiler-plugin它有点工作 - 我只是WARNING不知道sun.security.x509包:
[WARNING] OldSelfSignedCertificateGenerator.java:[20,25] sun.security.x509.AlgorithmId is internal …Run Code Online (Sandbox Code Playgroud)