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

求助:Keystore篡改或密码错误问题已尝试多方案仍未解决

解决GlassFish 4.1 + MySQL Connector 5.1.45的Keystore连接错误

折腾了这么多方案还卡着这个keystore错误,确实闹心!结合你用的GlassFish 4.1、MySQL Connector 5.1.45环境,咱们从几个容易被忽略的细节入手排查:

1. 先确认keystore文件的真实密码

不要只盯着配置文件改,先直接验证keystore.jks本身的密码是否正确:

  • 打开命令提示符,切换到keystore所在路径:
    cd "C:\Program Files\glassfish-4.1\glassfish\domains\domain1\config"
    
  • 执行keytool命令检查:
    keytool -list -keystore keystore.jks
    
  • 如果输入你设置的密码(比如keystore或changeit)后,命令能正常列出证书信息,说明密码没问题;如果还是报错,那大概率是keystore文件损坏了,需要重新生成:
    1. 先备份原keystore.jks文件
    2. 执行生成命令,设置好新密码(比如还是用keystore):
      keytool -genkey -alias s1as -keyalg RSA -keystore keystore.jks
      
    3. 过程中所有选项直接回车默认即可,重点记好你设置的密码。

2. 检查连接池的所有关联配置项

你已经设了ssl=false,但可能漏了其他和keystore绑定的配置:

  • 打开NetBeans,找到GlassFish的domain1服务器,进入Resources > JDBC > Connection Pools,选中你的MySQL连接池
  • 切换到Additional Properties标签,逐一检查:
    • 确保useSSL的值是false,如果有sslMode项,改成DISABLED(MySQL 5.1.x的驱动有时候需要这个配合)
    • 找到javax.net.ssl.keyStorePassword,确保它和你刚才验证/生成的keystore密码完全一致
    • 删除任何残留的、和keystore相关的无效配置项(比如旧的keystorePassword)

3. 修正JDBC连接URL的格式

MySQL Connector 5.1.45的连接URL需要明确关闭SSL相关校验,避免隐式触发keystore检查:

  • 你的连接URL应该改成类似这样:
    jdbc:mysql://localhost:3306/你的数据库名?useSSL=false&allowPublicKeyRetrieval=true
    
    加allowPublicKeyRetrieval=true是为了避免驱动自动尝试SSL连接的额外校验。

4. 清理GlassFish缓存并重启

GlassFish经常会缓存旧配置,导致你的修改不生效:

  • 先完全停止GlassFish服务器
  • 删除C:\Program Files\glassfish-4.1\glassfish\domains\domain1下的osgi-cache和generated文件夹里的所有内容
  • 重新启动服务器,再测试连接池是否正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:19:18