gitlab迁移升级后修改配置项500错误 OpenSSL::Cipher::CipherError

        在经过一次gitlab服务器迁移中,由于docker容器gitlab历史版本的问题,之前用的版本无法找到镜像,只能在迁移过程中被迫升级。迁移升级后首先出现了项目不能被删除的情况,同时也出现了管理员账号无法保存全局设置的情况,都是500错误。

        查看日志后发现出现OpenSSL::Cipher::CipherError等错误。经过资料查阅和验证,发现这个错误通常意味着在处理加密数据时遇到了问题,可能是由于密钥、密码或配置不匹配导致的加密解密失败。

项目不能删除的问题通过进入容器修改db数据库成功解决。

#gitlab  进入数据库命令
gitlab-rails dbconsole

#执行这几个修改
#Clear project tokens
gitlabhq_production=>UPDATE projects SET runners_token = null, runners_token_encrypted = null;
 
#Clear group tokens
gitlabhq_production=>UPDATE namespaces SET runners_token = null, runners_token_encrypted = null;
 
#Clear instance tokens
gitlabhq_production=>UPDATE application_settings SET runners_registration_token_encrypted = null;

 
#Clear runner tokens
gitlabhq_production=>UPDATE ci_runners SET token = null, token_encrypted = null;

       执行后项目可正常删除,配置依旧不能修改,仍然是500错误,继续查找解决办法。

经过验证,最终通过以下方式解决:

1:使用命令gitlab-rake gitlab:doctor:secrets VERBOSE=1来检查加密相关的配置和密钥是否正确无误。这个命令会帮助识别任何与密钥或加密相关的配置问题。

ApplicationSetting failures: 1 D, [2024-05-14T08:35:11.360072 #7405] DEBUG -- : - ApplicationSetting[1]:runners_registration_token,error_tracking_access_token,encrypted_ci_jwt_signing_key

 发现error_tracking_access_token_encrypted和encrypted_ci_jwt_signing_key也出现了配置不一致的情况。

2:仍然通过gitlab-rails dbconsole进入数据库执行以下语句(新增了不一致的密钥名):

UPDATE projects SET runners_token = null, runners_token_encrypted = null;

UPDATE namespaces SET runners_token = null, runners_token_encrypted = null;
 
UPDATE application_settings SET runners_registration_token_encrypted = null;

UPDATE application_settings SET encrypted_ci_jwt_signing_key = null;

UPDATE application_settings SET error_tracking_access_token_encrypted = null;

UPDATE ci_runners SET token = null, token_encrypted = null;

3:另外通过gitlab-rails c进入控制台 依次执行以下命令:

settings = ApplicationSetting.last
settings.update_column(:runners_registration_token_encrypted, nil)
settings.update_column(:encrypted_ci_jwt_signing_key, nil)
settings.save!

4:为了确保配置生效 执行以下命令

#重载配置

gitlab-ctl reconfigure

#重启

gitlab-ctl restart

经过上述步骤 最终解决问题

如果还有其他密钥不一致问题请参考官方文献:

Back up and restore GitLab | GitLab

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值