Confluence发邮件报告了一个高危(critical)漏洞并提示升级,看描述这个漏洞有可能导致未认证的用户在服务器上执行任意代码,刚好Confluence 发布了7.13.0长期支持版,所以升级一下。

参考链接:


升级之前

1. 确定是否有资格升级到新版本。Confluence购买的每个许可证都带1年的维护期,在维护期内可升级到最新版,超过维护期后不支持升级到新版,需要先延保,再升级。可在 站点管理-> 故障排除和技术支持工具 查看是否在维护期内,如下:

2. 确定使用哪种方式进行升级,这里使用安装包进行升级,需要提前下载7.13.0版本的安装包并上传到服务器。

3. 走读版本发布说明和更新说明,确定平台和环境相关的依赖是否要更新,比如数据库版本,JDK,以及一些特殊的设置。

升级准备

1. 站点管理-> 计划升级,查看官方推荐的升级版本和升级步骤。

2. 站点管理-> 故障排除和技术支持工具,查看当前运行状态是否正常,保证所有项都打勾。

3. 应用管理-> Confluence更新检查,选择对应版本后,看有没有需要更新的应用。

开始升级

1. 升级过程非常容易翻车,所以强烈推荐在升级之间先制作一份当前云服的镜像,这样即使升级失败,也可以通过回滚服务器的方式消除任何影响

2. 先关闭当前的Confluence服务,在安装目录的bin文件夹下执行 ./shutdown.sh。

3. 参考https://confluence.atlassian.com/doc/confluence-7-11-upgrade-notes-1035239484.html,从7.10升级到7.13版本,需要调整MySQL 8的配置,在/etc/mysql/my.cnf文件的[mysqld]小节下增加一项配置log-bin-trust-function-creators = 1,并重启mysql服务。

4. 执行升级包,按提示操作。确保选择Upgrade an existing Confluence installation(选项3)以及提示的当前安装路径是正确的。中间有几个提示是是否备份安装目录和家目录,选是即可。升级结束后会提示是否启动Confluence,这里选n,先不启动,等下一步调整配置后再启动。

5. 调整配置。升级相当于删除原来的安装目录,再重新安装一次,所以安装目录下的修改需要重新设置。首先是数据库驱动,需要把原来安装目录下的confluence/WEB-INF/lib/mysql-connector-java-8.0.19.jar文件再拷到对应目录。接下来是调整conf/server.xml文件,把之前修改过的proxy和docbase再调整回来,参考安装Confluence Server

6. 调整Java heap。这一步是保险起见,把Java head调大点,修改bin/setenv.sh,设置CATALINA_OPTS="-Xms4096m -Xmx4096m ${CATALINA_OPTS}",默认是1024MB,这里修改成4096MB。

7. 启动Confluence。如果使用了反向代理,则需要先启动Nginx。

8. 访问网站,提示升级成功:

总结

1. 一定要先备份云服,否则一旦出错就万事休矣。

2. 如果数据库是MySQL 8,那从7.10升级到7.13要按上面的描述调整MySQL 8配置,否则升级失败。

























  • 无标签