在数字化时代,数据可视化的价值日益凸显,DataEase V2 作为一款开源的数据可视化与分析平台,为企业提供了强大的数据洞察能力。然而,随着数据安全合规要求的提升,如何在保障数据可视化服务高性能的同时,确保传输链路的安全性成为关键挑战。通过集成云原生 API 网关 APISIX,可以为 DataEase V2 轻松开启 HTTPS 加密通信,构建安全、高效、可扩展的数据访问网关,有效应对数据泄露、中间人攻击等安全威胁,同时简化运维复杂度,释放数据价值。
1.修改 apisix 配置文件开启 SSL 以及 h2。
配置文件路径/opt/dataease2.0/apisix/apisix_conf/config.yaml
apisix:
node_listen: 9080 # APISIX listening port
ssl:
enable: true # 开启 SSL
listen:
- port: 9443 # HTTPS 端口
enable_ipv6: false
enable_http2: true
enable_control: true
control:
ip: "0.0.0.0"
port: 9092
deployment:
admin:
allow_admin:
- 0.0.0.0/0
admin_key:
- name: "admin"
key: DE_APISIX_KEY
role: admin
etcd:
host:
- "http://apisix-etcd:2379"
prefix: "/apisix"
timeout: 30
对文件进行修改。
2.更改 docker-compose-apisix.yml 文件增加端口映射。
version: "3"
services:
apisix-dashboard:
image: registry.cn-qingdao.aliyuncs.com/dataease/apisix-dashboard:3.0.1-alpine
container_name: apisix-dashboard
restart: always
volumes:
- ${DE_BASE}/dataease2.0/apisix/dashboard_conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml
ports:
- ${DE_APISIX_DASHBOARD_PORT}:9000
networks:
dataease-network:
apisix:
image: registry.cn-qingdao.aliyuncs.com/dataease/apisix:3.14.1-debian
container_name: apisix
environment:
- TZ=Asia/Shanghai
restart: always
volumes:
- ${DE_BASE}/dataease2.0/apisix/apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
- ${DE_BASE}/dataease2.0/apisix/logs:/usr/local/apisix/logs
- ${DE_BASE}/dataease2.0/apisix/plugins/cas-auth.lua:/usr/local/apisix/apisix/plugins/cas-auth.lua
- ${DE_BASE}/dataease2.0/apisix/plugins/openid-connect.lua:/usr/local/apisix/apisix/plugins/openid-connect.lua
- ${DE_BASE}/dataease2.0/apisix/plugins/hmac-auth.lua:/usr/local/apisix/apisix/plugins/hmac-auth.lua
depends_on:
- etcd
ports:
- ${DE_APISIX_PORT}:9080
- 9443:9443
networks:
dataease-network:
etcd:
image: registry.cn-qingdao.aliyuncs.com/dataease/etcd:3.5.10
container_name: apisix-etcd
restart: always
volumes:
- ${DE_BASE}/dataease2.0/data/etcd_data:/bitnami/etcd
environment:
ETCD_ENABLE_V2: "true"
ALLOW_NONE_AUTHENTICATION: "yes"
ETCD_ADVERTISE_CLIENT_URLS: "http://apisix-etcd:2379"
networks:
dataease-network:

3. 重启 DataEase服务。
dectl restart4.把证书上传至服务器并传输到容器里。

由于容器里默认是以 apisix 用户进行登录,并且 apisix 官方镜像并没有安装 curl 命令需要自行安装。
#借助 -u 0 参数以root身份登录进 apisix 容器
docker exec -it -u 0 apisix bash
apt update
apt install -y curl
#用来存储 SSL 证书
mkdir /ssl
exit把服务器里的证书上传至容器里。
docker cp cert.pem apisix:/ssl
docker cp key.pem apisix:/ssl5.从 config.yaml 中获取 admin_key,并添加证书到 apisix 服务。
查看/opt/dataease2.0/apisix/apisix_conf/config.yaml文件

#key 的值为密钥
cat config.yaml
#柯验证 key 是否正确
docker exec -it -u 0 apisix curl http://127.0.0.1:9180/apisix/admin/routes \
-H "X-API-KEY: DE_APISIX_KEY"
#构建curl请求,自行替换
#"X-API-KEY: DE_APISIX_KEY 替换为配置文件中的密钥
# "cert": "'"$(cat /ssl/cert.pem)"'", 证书公钥地址
# "key": "'"$(cat /ssl/key.pem)"'", 证书私钥地址
# "snis": ["de.lmqzcr.top"] 域名信息
docker exec -it -u 0 apisix curl http://127.0.0.1:9180/apisix/admin/ssls/1 \
-H "X-API-KEY: DE_APISIX_KEY" \
-X PUT -d '{
"cert": "'"$(cat /ssl/cert.pem)"'",
"key": "'"$(cat /ssl/key.pem)"'",
"snis": ["de.lmqzcr.top"]
}

6.确认是否正常写入,并重启 DataEase 服务。
# 进入 etcd 容器
docker exec -it apisix-etcd bash
# 查看 SSL 配置
etcdctl get /apisix/ssl --prefix
exit
#重启 DataEase 服务
dectl restart
7.测试https是否生效
curl -k https://de.lmqzcr.top:9443/ -v
至此 https 以开启完成可上页面访问验证。
注:其他配置可参考 apisix 官网配置。地址:https://apisix.apache.org/zh/docs/apisix/certificate/