You need to enable JavaScript to run this app.
导航
核心场景-端云互信加密通信DEMO
最近更新时间:2025.04.28 18:07:12首次发布时间:2025.04.28 18:07:12
我的收藏
有用
有用
无用
无用

说明

特别说明

  • Demo中提供服务端和客户端测试代码,使用时直接下载代码,并按照操作步骤进行服务端和客户端配置,即可进行【本地加密通信测试】;
  • 在完成【本地通信加密测试】之后,若要进一步在PCC环境下进行【PCC环境端云互信测试】,首先将开发好的服务打包成容器镜像发布部署至火山引擎PCC平台,之后再进行端云联调测试

端云互信DEMO通信流程图

业务流程图

本地加密通信测试流程

Image

PCC环境端云互信测试流程

Image

准备测试服务端

步骤1:SDK下载

下载地址

步骤2:SDK安装(依赖 Python >= 3.8)。

version=0.1.7.28
pip3 install bytedance.jeddak_secure_channel-${version}-py3-none-any.whl

步骤3:准备服务端代码

代码示例(example_server.py

步骤4:生成服务端验签用的公钥和私钥

执行如下命令生成 myPrivateKey.pemmyPublicKey.pem

openssl genrsa -out ./myPrivateKey.pem 4096
openssl rsa -pubout -in ./myPrivateKey.pem -out ./myPublicKey.pem

步骤5:服务端运行配置

{
  "tks_url": "open.volcengineapi.com", //固定不需要修改
  "tks_app_id": "2100278143",//火山引擎账号ID
  "tks_ring_id": "bfb396fe-3bab-43b6-a338-c44750645b88",//密钥环ID
  "tks_key_id": "8f4cb49a-11a9-4d28-83a1-2304f3567260",//密钥ID
  "bytedance_top_info": "{\"ak\": \"***\", \"sk\": \"***\", \"service\": \"pcc\"}",
  "refresh_interval": 3600,
  "root_key_config": "[{\"app_info\": \"test_id_test_name\", \"pub_key\":\"./myPublicKey.pem\"}]",
  "client_ra_config": "{\"open\": false,\"ra_service_name\": \"dhwdQ56TzxFVDtKA\",\"ra_policy_id\": \"9eb6b259-a3fe-580c-90c5-ef20a92309c8\"}"
}
JSON
  • 参数获取说明
    • tks_app_id】:在火山引擎页面查看账号ID,如下图所示,。

    • bytedance_top_info】点击火山账号,选择“API访问密钥”,新建该账号的【ak】、【sk】。

准备测试客户端

步骤1:SDK下载

下载地址

步骤2:SDK安装(依赖 Python >= 3.8)

version=0.1.7.28
pip3 install bytedance.jeddak_secure_channel-${version}-py3-none-any.whl

步骤3:客户端代码

代码示例(example_client.py

说明

说明:运行客户端时依赖python的 Flask和requests库

步骤4:客户端签名私钥

详见 步骤4:生成服务端验签用的公钥和私钥

步骤5:客户端运行配置

参考(client_config.json)

{
  "ra_url": "open.volcengineapi.com",// 固定不变
  "ra_service_name": "rag_client_test", //接收端服务在Jeddak PCC上部署时的服务名称
  "ra_policy_id": "16a371d7-130b-58eb-9e95-b5b816559ad8",//做远程证明时的策略ID
  "ra_uid": "2100278143",
  "bytedance_top_info": "{\"ak\": \"***\", \"sk\": \"**\", \"service\": \"pcc\"}",
  "attest_interval": 600
}
  • 参数获取说明
    • ra_uid】:在火山引擎页面查看账号ID,如下图所示,
      Image
    • bytedance_top_info】点击火山账号,选择“API访问密钥”,新建该账号的【ak】、【sk】。

服务容器打包部署至PCC

说明

前提条件:业务服务端代码已完成SDK集成;
以下给出如何进行镜像服务打包、并上传至火山PCC下部署完成的操作步骤;

步骤1:示例服务镜像打包

  • 准备环境
    • 安装 docker的Linux环境
  • 准备镜像打包配置
    • 配置文件: server.dockerfileMakefile

    • 建议修改位置

      • 基础镜像,建议使用debian10.python39
      • Makefile 中修改镜像仓库实际地址
        • 把【jeddak-cc-infra-cn-beijing.cr.volces.com/jsc_example】替换成用户本地的镜像仓库的实际地址;
    • 将修改好的两个配置文件放入Linux环境的打包目录;

  • 打包镜像
    ## 执行如下命令 进行本地镜像打包
    make server
    

步骤2:服务镜像上传火山镜像仓库

  • 登录火山镜像仓库:https://console.volcengine.com/cr/region:cr+cn-beijing/instances?projectName=default
  • 创建或进入已有的实例,然后获取临时访问指令
  • 复制后在本地控制台粘贴执行

  • 完成到火山仓库的login过程后,执行如下命令

    ## 实现镜像服务的上传至火山镜像仓库
    make push_server
    
  • 结果:将本地的镜像上传到火山镜像仓库,上传后在火山的镜像仓库中可见到类似如下内容:
    Image

步骤3:服务端镜像部署至PCC

步骤4:端云服务联调

  • 修改example_client.py中的server_addr内容为新的服务端IP地址端口
    Image
  • 启动测试客户端进行测试
    python example_client.py