简单搭建一下证书透明度服务(certificate transparency)

ct服务搭建流程参照官网: https://github.com/google/certificate-transparency-go/blob/master/trillian/docs/ManualDeployment.md

1. 创建数据库(mysql)

  • 需要数据库支持用户无密码登录(因为启动参数上面没有找到设置数据库 密码的参数)
  • 设置无密码登录
    • 进入mysql mysql -uroot -p 输入密码
    • use mysql
    • 查看root的密码是否为空,以及是否支持远程登录select host,user,plugin,authentication_string from mysql.user;
    • 修改密码为空ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '';
    • 刷新权限FLUSH PRIVILEGES;
    • 测试, 先执行exit退出mysql,在输入mysql 是否直接进入mysql
  • 创建数据库testDb, 执行sql脚本https://github.com/google/trillian/blob/master/storage/mysql/schema/storage.sql

2. 搭建go编译环境

  • 下载安装包https://golang.google.cn/ 版本为 1.21

  • linux搭建

    • 解压下载的安装包到自己的安装位置例如tar -zxvf go1.21.9.linux-amd64.tar.gz -C /opt

    • 配置环境变量

      • 执行脚本
      echo -e "export GOHOME=/home/go\nexport PATH=$PATH:$GOHOME/bin\nexport GOPATH=$HOME/golang/gopath\n" >> /etc/profilesource /etc/profile
    • 测试环境

      • go version

3. 下载项目代码git clone https://github.com/google/certificate-transparency-go.git

4. 进入项目目录cd certificate-transparency-go

5. 启动 trillian_log_server

  • 执行go run github.com/google/trillian/cmd/trillian_log_server --mysql_uri="root@tcp(数据库ip:3306)/testDb" --rpc_endpoint=:8080 --http_endpoint=:8081 --logtostderr
  • 第一次执行的时候会下载依赖,下载不了的可能需要使用魔法
  • 启动参数中没有找到设置数据库密码的,如果数据库有密码此处执行会失败

6. 启动trillian_log_signer

  • 执行go run github.com/google/trillian/cmd/trillian_log_signer --mysql_uri="root@tcp(数据库ip:3306)/testDb" --force_master --rpc_endpoint=:8090 --http_endpoint=:8091 --logtostderr
  • 同trillian_log_server

7. 创建树

  • 执行go run github.com/google/trillian/cmd/createtree --admin_server=:8080
  • 此处会返回一个treeID需要记录下来,后面会用到

8. 生成密钥对(openssl)

  • openssl ecparam -name prime256v1 > privkey.pem

  • openssl ecparam -in privkey.pem -genkey -noout >> privkey.pem

  • openssl ec -in privkey.pem -pubout -out pubkey.pem

  • 检查密钥对

    • openssl ec -in privkey.pem -noout -text

    • openssl pkey -pubin -in pubkey.pem -text -noout

9. 安装ctclient

  • go install github.com/google/certificate-transparency-go/client/ctclient

10. 生成根证书

- centos : - `sudo yum install -qy ca-certificates`- `sudo update-ca-trust`- `cat /etc/ssl/certs/* > ca-roots.pem`
-  debian: - `sudo apt-get install -qy ca-certificates`-  `sudo update-ca-certificates`- `cat /etc/ssl/certs/* > ca-roots.pem`
- 添加自己的根证书- 在`ca-roots.pem`中的证书列表中添加pem的根证书

11. 创建ctfe-config配置文件

- 创建文件ctfe-config `vi ctfe-config`- 编辑配置 - 将私钥和公钥的数据转成hex编码- ```config {log_id:  213214321432141 # 此处填写上面记录的treeIDprefix: "athos" # 此处填写访问路径前缀roots_pem_file: "ca-roots.pem" # 此次填写步骤10生成的根证书路径public_key: {der: "hex编码的公钥数据(例如'\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48\xce\x3d\x03\x01\x07\x03\x42\x00\x04\x05\x4d\xc0\x61\x7d\x19\x0d\xce\x89\xff\xe4\x78\x1f\x1c\xdc\xe2\x1f\x49\xc3\x84\x5a\x01\xe9\xc3\x08\x92\xe1\xb9\x29\x92\x16\xcb\xb5\x32\xa9\x35\xf4\xf0\x31\x87\x7e\xc7\x46\x05\x5a\xd6\x12\x55\x14\x30\x1d\x4f\xcd\x6e\x3c\xf3\x5f\xd1\xee\xa5\x67\x52\xd2\xfa')"}private_key: {[type.googleapis.com/keyspb.PrivateKey] {der: "hex编码的私钥数据(例如:\x30\x77\x02\x01\x01\x04\x20\x1e\x32\xe1\x14\x58\xd9\x46\x11\x69\x32\xf6\x95\x42\x59\x77\xd8\x14\x5b\x17\xe7\xae\x9a\xbb\xcc\x2b\xce\x3b\x93\x4d\x89\xa8\x1a\xa0\x0a\x06\x08\x2a\x86\x48\xce\x3d\x03\x01\x07\xa1\x44\x03\x42\x00\x04\x05\x4d\xc0\x61\x7d\x19\x0d\xce\x89\xff\xe4\x78\x1f\x1c\xdc\xe2\x1f\x49\xc3\x84\x5a\x01\xe9\xc3\x08\x92\xe1\xb9\x29\x92\x16\xcb\xb5\x32\xa9\x35\xf4\xf0\x31\x87\x7e\xc7\x46\x05\x5a\xd6\x12\x55\x14\x30\x1d\x4f\xcd\x6e\x3c\xf3\x5f\xd1\xee\xa5\x67\x52\xd2\xfa)"}}max_merge_delay_sec: 86400 expected_merge_delay_sec: 7200 }```

12. 启动服务

- `go run github.com/google/certificate-transparency-go/trillian/ctfe/ct_server --log_config ./ctfe-config --http_endpoint=服务ip:6966 --log_rpc_server 服务ip:8080--logtostderr`

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/829243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

表情识别 | LBP+SVM实现脸部动态特征的人脸表情识别程序(Matlab)

表情识别 | LBPSVM实现脸部动态特征的人脸表情识别程序(Matlab) 目录 表情识别 | LBPSVM实现脸部动态特征的人脸表情识别程序(Matlab)预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1 运行环境 程序运行在Windows系统下&am…

微信小程序:11.本地生活小程序制作

开发工具: 微信开发者工具apifox进行创先Mock 项目初始化 新建小程序项目输入ID选择不使用云开发,js传统模版在project.private.config中setting配置项中配置checkinalidKey:false 梳理项目结构 因为该项目有三个tabbar所以我们要创建三…

【Jenkins】持续集成与交付 (六):Gitlab代码托管服务安装

【Jenkins】持续集成与交付 (六):Gitlab代码托管服务安装 一、Gitlab安装1.1 安装相关依赖1.2 启动SSH服务并设置为开机启动1.3 设置Postfix开机自启并启动1.4 开放SSH和HTTP服务,并重新加载防火墙列表1.5 下载GitLab包并安装1.6 修改GitLab配置1.7 重载配置及启动GitLab1.…

百种提权及手段一览系列第10集

特权升级的危险是显而易见的。通过提升权限,攻击者可以绕过网络安全措施,从而损害数据完整性、机密性和系统可用性。对于组织而言,这可能会导致数据泄露、系统停机以及潜在的法律和声誉后果。识别权限升级的迹象并部署预防性网络安全措施对于…

【01-机器学习入门:理解Scikit-learn与Python的关系】

文章目录 前言Python与机器学习Scikit-learn简介Scikit-learn与Python的关系使用Scikit-learn进行机器学习结语 前言 在当今的数据科学和人工智能领域,机器学习已经成为了一个不可或缺的组成部分。而对于那些刚刚踏入这一领域的新手来说,理解机器学习的基…

HTTP网络协议的请求方法,具体详解(2024-04-26)

1、HTTP 即超文本传输协议,是一种实现客户端和服务器之间通信的响应协议,它是用作客户端和服务器之间的请求 根据 HTTP 标准,HTTP 请求可以使用多种请求方法。 2、方法分类 HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方…

STM32系统参数和结构

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 基本参数 2. 片上资源(外设) 3. STM32系列命名规则 4. 系统结构 5. 引脚定义 6. 启动配置 7. 最小系统电路 8. 型号分类和缩写 1. 基本参数 STM32F103C8T6 系列&#…

监听el-table滚动

mounted() {// 监听el-table滚动window.addEventListener("scroll", this.loadMore, true);}, 后端接口没有分页,一次性返回全部数据,前端监听滚动条加载数据。 this.tableList当前表格展示的数据 this.allTableData接口获取的全部数据 load…

SpringBoot+MyBatis-Plus+jsqlparser实现多租户功能

前言 多租户技术(multi-tenancy technology)是一种软件架构技术,它允许在单个系统实例上为多个用户或组织提供服务,同时确保这些用户之间数据的隔离性。在多租户架构中,每个租户(可以是个人用户、企业、组…

预见预判|AIRIOT智慧交通管理解决方案

随着机动车保有量的逐步增加,城市交通压力日益增大。同时,新能源车辆的快速发展虽然带来了环保效益,但也因不限号政策而进一步加剧了道路拥堵问题。此外,各类赛事和重大活动的交通管制措施也时常导致交通状况复杂多变。面对这些挑…

便携式应急指挥箱规格参数

概况: 微缩型的无线视频音频传输的机动挥所。体积小、重量轻、公配电方便、携带便携、功能齐全。可进行单兵作战,通过此无线音频视频传输的指挥箱能完成现场图像、语音、数据的采集等功能,可以通过5G/4G/WIFI等多种无线网络完成传输的需求,或…

Linux基础——Linux开发工具(gcc/g++,gdb)

前言:在上一篇我们简单介绍了yum,vim的一些常用的指令和模式,现在让我们来进一步了解其他的Linux环境基础开发工具gcc/g,gdb。 如果对前面yum和vim有什么不懂的建议回顾去回顾上期知识!!! Linu…

html表格导出为word文档,导出的部分表格内无法填写文字

导出技术实现:fileSaver.jshtml-docx-js 1.npm安装 npm install --save html-docx-js npm install --save file-saver 2.页面引入 import htmlDocx from html-docx-js/dist/html-docx; import saveAs from file-saver;components: {htmlDocx,saverFile, }, 3.页…

神经网络的激活函数

目录 神经网络 激活函数 sigmoid 激活函数 tanh 激活函数 backward方法 relu 激活函数 softmax 激活函数 神经网络 人工神经网络( Artificial Neural Network, 简写为ANN)也简称为神经网络(NN)&#xff0c…

提示工程 3—文本类任务和推理类任务示例

1. 文本类任务 1.1. 文本概括(Text Summarization) 任务描述:将较长的中文文本内容简化为包含关键信息和主要观点的简短版本。 示例:原文:"阿里巴巴集团成立于1999年,是中国最大的电子商务公司之一,由马云创办。集团主要经营B2B、B2C和C2C等多种电商平台。"…

k8s笔记 | StatefulSet 有状态

创建一个web.yaml --- apiVersion: v1 kind: Service metadata:name: nginxlabels:app: nginx spec:ports:- port: 80name: webclusterIP: Noneselector:app: nginx --- apiVersion: apps/v1 kind: StatefulSet metadata:name: web spec:serviceName: "nginx" # 使用…

c# ?? 、?.、??=、?[]运算符的使用

在 C# 中存在一些特殊的运算符,它们简化了代码的编写,主要用于处理空值(null)或简化成员访问。以下是一些常用的这类运算符: ?? - Null 合并运算符 Null 合并运算符 ?? 在左侧的操作数不为 null 时返回左侧的操作…

asp.net core 自定义过滤器 注入的几种方式和实现

在 ASP.NET Core 中,过滤器(Filters)是一种在 MVC 应用程序中运行代码的方法,可以在操作(Actions)执行之前或之后运行。过滤器可以应用于控制器(Controllers)或特定的操作方法。过滤…

Java-基础知识-包-带点不带点

在 IntelliJ IDEA 中,工程目录(通常指的是项目的包结构或目录结构)带点和不带点的区别主要是语义上的和约定上的。这里所说的“点”通常指的是在包名或目录名中的.字符。 带点的目录结构: 当您在 IntelliJ IDEA 中看到带点的目录…

Netty 应用与原理

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 Java IO 模型 本篇示例代码仓库:learn-netty 基础概念 在 I/O 操作中有这么两组概念,其中同步/异步 要和线程中的同步线程/异步线程要区分开,这里指的是同步IO / 异步IO…