0

我正在 Windows 上安装 EJBCA。
操作系统版本:Windows Server 2016
Java:OpenJDK 8.0.242.08 Ant:ant 1.9.14
数据库:MariaDB 10.4.12
服务器:Wildfly 10.1.0
EJBCA 版本:6.15.2

使用此https://doc.primekey.com/ejbca6152/ejbca-installations/ejbca-main-installation手册进行安装。

不幸的是,该命令ant deploy-keystore提供了此错误:

吉:部署信任库:

BUILD FAILED
c:\ejbca\build.xml:844: The following error occurred while executing this line:
c:\ejbca\bin\jboss.xml:310: The following error occurred while executing this line:
c:\ejbca\bin\jboss.xml:294: Missing JKS truststorestore file in 'c:\ejbca/p12/truststore.jks'

它有一个相应的错误(我认为它们是相关的):

ejbca:javatruststore:
    [input] skipping input as property ca.name has already been set.
     [echo] Getting root certificate in DER format...
     [echo] ca getcacert "ManagementCA" C:\Users\tsaForFN\AppData\Local\Temp\2\/rootca.der -der
     [java] Wrote CA certificate to 'C:\Users\tsaForFN\AppData\Local\Temp\2\/rootca.der' using DER encoding.
     [echo] Adding to or creating keystore: c:\ejbca/p12/truststore.jks

ejbca:javatruststore-removeold:
     [exec] keytool error: java.lang.Exception: Input not an X.509 certificate
     [exec] java.lang.Exception: Input not an X.509 certificate
     [exec]     at sun.security.tools.keytool.Main.addTrustedCert(Main.java:2861)
     [exec]     at sun.security.tools.keytool.Main.doCommands(Main.java:1050)
     [exec]     at sun.security.tools.keytool.Main.run(Main.java:366)
     [exec]     at sun.security.tools.keytool.Main.main(Main.java:359)

     [exec] Result: 1
   [delete] Deleting: C:\Users\tsaForFN\AppData\Local\Temp\2\rootca.der

我试图改变斜线,但它仍然没有奏效。

这是 Wildfly 服务器的日志 https://controlc.com/bb5d54f4
这是 EJBCA 安装的日志 https://controlc.com/f6f062d2

属性是默认的,除了数据库,它现在已配置、工作且不相关。

4

1 回答 1

1

您的问题是:“输入不是 X.509 证书”

这是由于您在“install.properties”中使用了“implicitlyCA”,创建了普通客户端无法使用的 CA 证书。

使用 'ManagementCA' 'CN=ManagementCA,O=EJBCA Sample,C=SE' 'soft' '<ca.tokenpassword hidden>' 'implicitlyCA' 'ECDSA' '3650' 'null' 'SHA256withECDSA' -superadmincn 'SuperAdmin 初始化 CA '...

您已将管理 CA 配置为使用“implicitlyCA”ECDSA,这不是 Java、Windows 或任何 Web 服务器和浏览器支持的东西。

您需要使用可用于 TLS 连接的密钥(在 ca.keyspec 设置中),例如 RSA 2048 或 ECDSA prime256v1。

仅当您非常确定自己在做什么并且使用特定的客户客户端软件时,才能使用 ImplicitlyCA。

于 2020-11-16T15:18:55.710 回答