背景:

之前的加密服务得在公司内网才可以加密解密,目前更新的最新版ende镜像包,支持有数机器容器内加密解密,不限制网络环境。

操作步骤

1. 加载ende镜像

镜像地址为 59.111.178.240:20280/stable/ende.tar.gz

docker load -i ende.tar.gz 解压ende镜像

2. 获取私钥和公钥

openssl genpkey -algorithm RSA -out private\_key.pem -pkeyopt rsa\_keygen\_bits:2048

openssl pkcs8 -topk8 -inform PEM -outform DER -in private\_key.pem -out private.key -nocrypt

openssl rsa -pubout -in private\_key.pem -outform DER -out public.key

以上3行命令会获取到private.key,public.key的公私钥,然后将公私钥放到/youdata/installer目录下

3. yaml文件添加ende服务

ende服务内容如下:

ende:

    image: localhost:5000/yddocker/ende:stable

    deploy:

      replicas: 1

    networks:

      - youdata

    volumes:

      - /youdata/installer/public.key:/ende/public.key

      - /youdata/installer/private.key:/ende/private.key

    logging:

      options:

        max-size: "10m"

        max-file: "10"

https://office.netease.com/api/admin/file/download?path=cowork/2024/09/18/2f0261e523ee4123a9c0c1acef667b2b.png

4. 进入ende容器加解密

yaml文件更改完后,dsd下,然后ende服务起来后,进入ende服务容器

进入ende容器

docker exec -it ende容器id bash

加密:

curl --request GET \\

\--url 'http://127.0.0.1:7000/encrypt-text?value=123'

value后面的值123换为需要加密的字段,即可获取到明文对应的密文

解密:将加密值替换value部分

curl --request POST \\

\--url http://127.0.0.1:7000/decrypt-text \\

\--header 'Content-Type: application/json' \\

\--data '{"value": "axC48O/OubhFiHpu8a+XmoUUhQBqApOnUO9GdRDJCdvYZqH4wE0L5xV7kd9yn4yCa7isGcF7u/uQrjSfNv3xymSG7Us7QXvDm5erKjEJiMilwGTN/LUuifoShXtDtNjiPMf/HEj9cepO/Gxnw=="}'

5. 配置文件替换密文配置并开启解密

DB: HZ5DpSHatK9bYq588+F+AcR0sfkU0eJ3y6qp1ET+CkmdSFbBwdQoIoGjpMI8OUbbeVXRkp/9AH/D6K1Leu/8VsIl1JBNb34j0AaA8lnsD/lCiUjhGdDWgP+EeYi5S5VauR5W8BmQWHjxZwJ5AV7CacCqZ9b/dp3yA2Ndr76llgA=

#额外增加以下2个配置

ENABLE\_DECRYPTOR: 'true'

DECRYPTOR\_HOST: http://ende:7000

#只要是替换为密文的服务,环境变量都需要加上如上两行配置

配置文件更改完后,dsd下,看下服务是否起来dv ls