Skip to main content
Version: v3&v6

明文密码切换到密文密码

操作步骤:

环境准备

登陆 ONES 服务器,进入当前运行中实例的安装目录

cd /data/ones/pkg/ones-example-3.14.xxxxx

下载config-proxy工具

如果需要修改加密的 key 可以自行编译 config-proxy 工具,请参考:https://github.com/BangWork/ones-tools/tree/hotfix_370024/secret-config-proxy

curl -O  https://res.ones.pro/script/k3stool/config-proxy.tar.gz
tar -xzvf config-proxy.tar.gz

修改配置

修改需要 config-proxy 配置文件,逐个将需要加密的密码对应的密文写入配置文件

密文需要使用 config-proxy 生成,生成方式参考:https://github.com/BangWork/ones-tools/tree/hotfix_370024/secret-config-proxy

config-proxy/bin/config-proxy -config config-proxy/conf/config-proxy.json -encrypt "明文密码"
# 返回密文,写入config-proxy/conf/config-proxy.json
thU3Q+qPKeMyTSddkaRpow==
  1. 修改后的配置文件如下:
[root@ones-test ones-example-3.14.xxxxx]# cat config-proxy/conf/config-proxy.json
{
"replace_sep_map":{
"{{.MySQLPassword}}": "k/3Ld+HWWwwApTTp5HmeEA==",
"{{.RedisPassword}}": "thU3Q+qPKeMyTSddkaRpow==",
"{{.OwnerPassword}}": "GVaph5tYPhGDINEBbfbuwQ==",
"{{.MySQLRootPassword}}":"fmEiWtfkpSnNfxInYPT9tw==",
"{{.MySQLOpenPlatformPassword}}":"fmEiWtfkpSnNfxInYPT9tw=="
},
"default_sep": "{{.MySQLPassword}}"
}

拷贝工具文件并修改配置

  1. config-porxy 工具和 config-proxy.json 工具配置文件拷入到现有的容器中
# 进入容器
./onesconfigure e
# 执行创建目录的命令
mkdir -p /usr/local/ones-ai-config-proxy/conf/ /usr/local/ones-ai-config-proxy/bin
# 退出容器
exit
# 将工具和配置文件拷贝到对应的目录
containerID=$(docker ps |grep $(./json-util -config config.json -operator select -key deploy_name) | grep '0.0.0.0:'$(./json-util -operator select -key port -config ./config.json)'->' | awk '{print $1}')
docker cp config-proxy/conf/config-proxy.json $containerID:/usr/local/ones-ai-config-proxy/conf/config.json
docker cp config-proxy/bin/config-proxy $containerID:/usr/local/ones-ai-config-proxy/bin
  1. 修改容器内/data/conf/options.json 文件的 MySQLPassword、MySQLRootPassword、OwnerPassword 这三个配置成占位符

其他的配置不需要处理,如果不修改这三个配置那么最后升级之后还是明文的密码。

修改后如下:

  1. 修改 ones 工作目录的 config.json

将需要加密的地方修改成对应的占位符,(具体哪些密码需要加密视情况而定)

  1. 往配置文件 config.json 内添加这两个参数

"password_encryption_type": 2, # 1 为招商环境的加密,2 为荣耀环境的加密,此处填 2

./json-util -config config.json -operator add -key password_encryption_type -valtype number -value 2
./json-util -config config.json -operator add -key is_use_proxy_config -valtype bool -value true
./json-util -config config.json -operator add -key proxy_config_path -valtype string -value config-proxy/conf/config-proxy.json

执行升级

containerID=$(docker ps |grep $(./json-util -config config.json -operator select -key deploy_name) | grep '0.0.0.0:'$(./json-util -operator select -key port -config ./config.json)'->' | awk '{print $1}')
./onesconfigure update $containerID -r