docker升级ejbca 8.3.2 到 9.0.0 版本

docker升级ejbca 8.3.2 到 9.0.0 版本

9.0.0版本不再支持旧版本的h2数据库,会出现“Unsupported database file version or invalid file header in file”错误信息,需要升级h2数据库版本。

升级h2数据库到2.0版本

  • 停止并删除现有ejbca容器

  • 安装21版本以上的openjdk

  • 下载1.4版本的h2 jar包
    https://h2database.com/h2-2019-10-14.zip

  • 启动h2数据库服务

    命令行窗口执行 java -jar bin\h2-1.4.200.jar

  • 下载数据库

    进入ejbca的persistent目录,下载ejbcadb.*.db文件到本地

  • 打开数据库

    浏览器打开localhost:8082/login.jsp
    输入数据库文件路径,我这里是jdbc:h2:C:\software\h2\data\ejbcadb,输入数据库名的时候不带任何后缀。
    用户名:sa,密码:sa

  • 备份数据库到Sql

    sql命令窗口执行script to 'ejbcadb.sql'

  • 关闭数据库连接,关闭数据库服务,删除数据库文件

  • 下载2.3版本的h2数据库jar包

    https://github.com/h2database/h2database/releases

  • 启动新版的数据库服务

    命令行窗口执行 java -jar java -jar h2-2.3.232.jar

  • 启动h2数据库服务

  • 创建数据库

    浏览器打开localhost:8082/login.jsp
    输入数据库文件路径,我这里是jdbc:h2:C:\software\h2\data\ejbcadb,输入数据库名的时候不带任何后缀。
    用户名:sa,密码:sa
    当输入的数据库不存在时会自动创建数据库

  • 导入数据

    sql命令窗口执行runscript from 'ejbcadb.sql'

  • 复制新建创的ejbcadb数据库到原位置

更新ejbca镜像版本

  • 拉取新版本的ejbca

    docker pull keyfactor/ejbca-ce

  • 启动容器

    docker compose -up -d

升级后除了版本号没发现有什么功能上的变化

发表回复