0

我们的超级管理员证书已过期。尝试使用更新它ejbca.sh,但在最后一步失败了:

[jboss@63a2ea1bfbfd bin]$ ./ejbca.sh batch
./ejbca.sh: line 3: which: command not found
Use 'batch --help' for additional options.
Generating keys in directory /tmp/p12.
Generating for end entities with status NEW.
Batch generating 2 users.
java.lang.NullPointerException
at org.cesecore.configuration.GlobalConfigurationSessionBean$GlobalConfigurationCacheHolder.updateConfiguration(GlobalConfigurationSessionBean.java:281)
at org.cesecore.configuration.GlobalConfigurationSessionBean.getCachedConfiguration(GlobalConfigurationSessionBean.java:141)

版本 6.5.0-Alpha,安装在 jboss 7.1.1 上。知道为什么这个 NPE 吗?

谢谢

4

2 回答 2

0

谢谢@primetomas,我终于解决了这个问题。

  1. 与管理员 CA 相关的加密令牌已脱机。问题中提到的NPE在激活后就解决了。为了不显示 NPE 并真正显示异常,org.cesecore.configuration.GlobalConfigurationSessionBean如果缓存不包含密钥,我必须在 cesecore-ejb 更新文件以防止 NPE。

        public void updateConfiguration(final ConfigurationBase conf, final String configId) {
        if (caches.containsKey(configId)) {
          caches.get(configId).updateConfiguration(conf);
        }else {
            System.out.println(String.format("updateConfiguration(%s) skipped as there is no cache for it ", new Object[] {configId}));
        }
    }
    
  2. 在那次修复之后,另一个 NPE 固定在 cesecore-common 的位置org.cesecore.certificates.ca.X509CA

        // Check that the certificate fulfills name constraints
    if (cacert instanceof X509Certificate) {
        GeneralNames altNameGNs = null;
        String altName = "" + subject.getSubjectAltName(); // Added "" to prevent NPE later
        if(certProfile.getUseSubjectAltNameSubSet()){
            altName = certProfile.createSubjectAltNameSubSet(altName);
        }
        if (altName != null && altName.length() > 0) {
            altNameGNs = CertTools.getGeneralNamesFromAltName(altName);
        }
        CertTools.checkNameConstraints((X509Certificate)cacert, subjectDNName, altNameGNs);
    }
    
于 2021-11-16T10:18:02.813 回答
0

您的 NPE 的详细信息将在 jboss server.log 文件中可见。服务器端的详细信息记录在那里。PS:那是一个非常旧的版本。你需要升级。

于 2021-11-15T18:22:50.153 回答