当前位置: 首页 > news >正文

开发TEE的踩坑之配置PCCS

系统:Ubuntu20.04(双系统,非虚拟机)

  • 一、解决node.js的版本问题
  • 二、解决开启PCCS服务的问题
    • 1、解决开启PCCS服务
    • 2、解决访问本地的8081端口

本系列为笔者开发TEE(Trusted Execution Environment,可信执行环境)的踩坑文,给广大开发者分享自己的所谓的“经验”,希望对大家有帮助。

开发路线为:

  1. 装Ubuntu20.04的双系统(不展开,B站有很多教程)
  2. 配置SGX环境(前提是SGX机器,最好是SGX2)
  3. 配置PCCS(很蛋疼,英特尔官方github的步骤也未必行得通)
  4. 开发TEE(花的时间最多)

本篇文章分享配置PCCS的踩坑
笔者是在这篇文章的配置PCCS的基础上,结合chatGPT给出的解决方案去解决途中遇到的问题的。
部分读者可能会直接参考英特尔官方github的步骤来配置PCCS,但很明显,能特地搜这篇文章一定是遇到问题的,笔者猜测很可能是node.js版本的问题。并非笔者想黑,若按照他们官方给的步骤是无法顺利配置好PCCS的,而且官方回答issue给出的安装文档都是几年前的,甚至连Ubunt20.04的字眼都没出现过,最新的也就18.04(QAQ)
话不多说,配置PCCS的正确步骤如下:

一、解决node.js的版本问题

sudo su
apt-get install sgx-dcap-pccs

不出意外的话,一定会出意外的
安装了一堆东西之后,会出现以下关于node.js版本问题的报错
没错,就是node.js版本的问题

npm i nvm -g

在这里插入图片描述

cd /opt/intel/sgx-dcap-pccs
node -v

输出是v10.19.0

此时执行nvm install 18.17或者nvm list,输出都是如下

This is not the package you are looking for: please go to http://nvm.sh

执行

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

在这里插入图片描述
很显然,依然是nvm和node.js存在问题

source /home/<用户名>/.nvm/nvm.sh

再次执行

nvm list

不出意外应该是如下输出
在这里插入图片描述
再次执行

npm i nvm -g

在这里插入图片描述
再次执行

nvm install 18.17

不出意外应该能安装该版本的node.js
在这里插入图片描述
再次执行

nvm list

很明显,node.js版本已经默认为18.17.1
在这里插入图片描述
重新装一下PCCS

./cleanup.sh
./install.sh

不出意外的话,肯定会出现以下输出
在这里插入图片描述
!恭喜你已经迈过第一个小坎!
接下来的操作与一致英特尔官方的DCAP安装指南一致
这里温馨提示一下,PCS API key可以在这里订阅
输入主密钥或副密钥都可以
在这里插入图片描述

二、解决开启PCCS服务的问题

1、解决开启PCCS服务

此时执行

systemctl status pccs

不出意外的话,输出一定是白点的pccs.service和inactive的Active
在这里插入图片描述
执行

./startup.sh

在这里插入图片描述
再执行

systemctl restart pccs
systemctl status pccs

不出意外的话,pccs服务可以正常启动了
在这里插入图片描述

2、解决访问本地的8081端口

执行

curl -kv https://localhost:8081

不出意外的话,一定是无法访问的
在这里插入图片描述
这里千万要注意(血淋淋的教训):
一定不要以为是防火墙出问题而去执行sudo ufw allow 8081
因为一般的ubuntu系统如果你输入sudo ufw status,输出是状态:不活动,也就是说你的ubuntu是没有防火墙,所以你现在无法访问8081端口和防火墙没有半毛钱关系的。
不然上两张图里的pccs.service不仅会变成白点,而且还会出现新的报错,如下(笔者已经为大家踩过坑了)
在这里插入图片描述
执行

nano pccs_server.js

确保文件开头的import是import Config from 'config';
执行

npm ls config

确保有config模块在这里插入图片描述
如果没有的话,就安装一下

npm install config

修复一下权限问题

chmod -R 755 /opt/intel/sgx-dcap-pccs

执行

node pccs_server.js

在其他终端再次执行

curl -kv https://localhost:8081

如果输出是这样的话
在这里插入图片描述
!恭喜你已经迈过第二个小坎,已经完美地配置好PCCS了!

提示:本文配置PCCS仅供参考,因为每台机器的系统、预装的软件都不一样,而且大家能特地来看这篇文章,大概率是已经执行了英特尔官方的配置PCCS步骤遇到坎了,再来按照本文的步骤走不一定能获得一样的结果。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 子域名爆破工具
  • 拜托:不要像鲍勃大叔那样重构
  • eNSP学习——RIP路由协议的汇总
  • DP:回文串模型
  • 【数据结构】利用单链表再实现通讯录
  • 编程的作品怎么删除编程库:一步步的深入解析
  • 2. Revit API UI 之 IExternalCommand 和 IExternalApplication
  • c++中main(int argc, char* argv[])参数详解
  • PaddleDetection快速体验quick_start
  • 云南区块链商户平台发票助手成品
  • 【数据结构】排序(上)
  • 编程不行?解锁求职新路径的七大策略
  • java使用websocket遇到的问题
  • pdf转图片,pdf转图片在线转
  • Ubuntu 网络重置
  • @angular/forms 源码解析之双向绑定
  • Centos6.8 使用rpm安装mysql5.7
  • CSS魔法堂:Absolute Positioning就这个样
  • Docker: 容器互访的三种方式
  • ES10 特性的完整指南
  • express + mock 让前后台并行开发
  • express如何解决request entity too large问题
  • Java程序员幽默爆笑锦集
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Vue全家桶实现一个Web App
  • Webpack 4 学习01(基础配置)
  • 程序员该如何有效的找工作?
  • 翻译--Thinking in React
  • 前端面试之CSS3新特性
  • 如何使用 JavaScript 解析 URL
  • 如何选择开源的机器学习框架?
  • 入门到放弃node系列之Hello Word篇
  • 思维导图—你不知道的JavaScript中卷
  • 算法之不定期更新(一)(2018-04-12)
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • Spring Batch JSON 支持
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​业务双活的数据切换思路设计(下)
  • #LLM入门|Prompt#3.3_存储_Memory
  • (SpringBoot)第七章:SpringBoot日志文件
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (六)DockerCompose安装与配置
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)mysql使用Navicat 导出和导入数据库
  • (转载)(官方)UE4--图像编程----着色器开发
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .NET 8.0 发布到 IIS
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • @EnableWebMvc介绍和使用详细demo