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
升级后除了版本号没发现有什么功能上的变化