You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Payara 5.194启动失败:报java.security.KeyStoreException: JCEKS not found

解决Payara 5.194启动失败(JCEKS异常)及根证书过期提示问题

我来帮你一步步拆解解决这两个问题——先搞定导致Payara启动失败的核心异常,再处理证书过期的警告提示:

一、解决java.security.KeyStoreException: JCEKS not found启动异常

这个异常是Payara读取密码别名存储时,找不到JCEKS密钥库支持或配置出错导致的,按以下步骤排查:

1. 验证JDK是否包含JCEKS支持

JCEKS是Java加密扩展密钥库,部分精简版JDK会缺失这个功能:

  • 打开终端运行命令:
    keytool -list -storetype JCEKS
    
  • 如果输出提示NoSuchAlgorithmException: JCEKS KeyStore not available,说明你用的JDK不支持JCEKS,更换为完整的Oracle JDK 8/11或OpenJDK 8/11(Payara 5.194推荐Java 8,兼容Java 11)。

2. 检查Payara密码别名配置

异常来自PasswordAliasConfigSource,说明Payara加载密码别名时出了问题:

  • 找到Payara域的配置文件domain.xml(默认路径:payara5/glassfish/domains/domain1/config/domain.xml)。
  • 搜索<password-alias>标签,或者检查MicroProfile Config中是否有password.alias.xxx这类引用密码别名的配置:
    • 如果不需要这些密码别名,暂时注释掉相关配置,再尝试启动Payara,看是否能正常启动。
    • 如果需要保留密码别名:
      • 确认配置里指定的密钥库文件路径正确、文件未损坏。
      • 重新创建JCEKS密钥库:
        keytool -genkey -alias your-alias-name -keystore payara.jceks -storetype JCEKS
        
      • 更新domain.xml中对应密钥库的路径和密码,确保配置无误。

3. 重置Payara密码别名存储

如果密钥库文件损坏,可以尝试重置:

  • 删除Payara域下的config/keystore.jceks文件(如果存在)。
  • 用Payara的asadmin工具重新创建密码别名:
    asadmin create-password-alias your-alias-name
    
  • 按照提示输入密码后重启Payara。

二、处理根证书过期提示

你看到的6个过期证书都是Java默认信任的根CA证书(比如AddTrust、Staat der Nederlanden等),这些已经被淘汰,需要更新JDK的信任库:

1. 删除过期的根证书

  • 找到JDK的cacerts信任库文件:
    • Java 8:jdk/jre/lib/security/cacerts
    • Java 9+:jdk/lib/security/cacerts
  • 列出所有证书,找到过期证书的别名(比如addtrustqualifiedcacert、staatdernederlandeng2等):
    keytool -list -keystore cacerts -storepass changeit
    
  • 逐个删除过期证书:
    # 删除AddTrust Qualified CA Root
    keytool -delete -alias addtrustqualifiedcacert -keystore cacerts -storepass changeit
    # 删除AddTrust Class 1 CA Root
    keytool -delete -alias addtrustclass1cacert -keystore cacerts -storepass changeit
    # 删除Staat der Nederlanden Root CA - G2
    keytool -delete -alias staatdernederlandeng2 -keystore cacerts -storepass changeit
    # 删除KEYNECTIS ROOT CA
    keytool -delete -alias keynectiscacert -keystore cacerts -storepass changeit
    # 删除Entrust.net Certification Authority (2048)
    keytool -delete -alias entrustnetca2048 -keystore cacerts -storepass changeit
    

2. 导入替代的最新根CA

这些过期根CA的功能已被其他CA替代(比如AddTrust被DigiCert替代),可以导入对应的最新根CA证书:

  • 从官方渠道下载最新根CA证书(比如DigiCert Global Root CA)。
  • 用keytool导入:
    keytool -import -trustcacerts -alias digicertglobalrootca -file /path/to/DigiCertGlobalRootCA.crt -keystore cacerts -storepass changeit
    

完成以上步骤后重启Payara,应该就能正常启动,同时证书过期的提示也会消失。

内容的提问来源于stack exchange,提问作者usertest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 19:53:16