微服务实战系列之玩转Docker(十九)

导览

  • 前言
  • etcd证书简介
    • [1. 证书用途](#1. 证书用途)
    • [2. etcd证书类型](#2. etcd证书类型)
    • [3. CFSSL工具](#3. CFSSL工具)
      • [3.1 简介](#3.1 简介)
      • [3.2 组成部分](#3.2 组成部分)
      • [3.3 安装](#3.3 安装)
        • [3.3.1 选择版本](#3.3.1 选择版本)
        • [3.3.2 安装验证](#3.3.2 安装验证)
  • 结语
  • 系列回顾

前言

听闻一句话:"快乐有迹可循,热爱漫无边际"。的确,当你站在热爱的土地上,快乐的"小芽"自然会"悄然萌发"。------碎碎念

玩转Docker终于又要更新了,这个系列从一颗"小芽",到现在"枝繁叶茂",离不开博主的辛勤浇灌。话不多说,言归正传,本期依然延续上篇的主题------etcd。

那么请允许博主,先带着各位回忆一下,etcd的前3篇讲了些什么:
十六:对etcd进行基本介绍,掌握它的一些特性,并完成集群的安装;
十七:进一步对集群运行进行说明,并提供可视化的数据管理方案;
十八:着重介绍etcd的安全方案,通过访问控制实现数据授权;

接下来的文章(不止一篇),博主将对etcd另外一种安全策略展开介绍,即通过证书满足集群的安全要求。在此之前,相信我们已或多或少了解过基于https协议的安全方案。那么我们快速切入本文的主题吧。

etcd证书简介

1. 证书用途

关于证书本身,博主不再赘述,它的作用是解决传输安全问题。简单讲是通过一个TLS/SSL协议实现传输加密,保障数据不被窃听。

2. etcd证书类型

etcd支持通过TLS证书完成客户端与集群通信以及集群成员间通信的身份验证。etcd集群涉及以下三类证书:

证书类型 证书用途
客户端证书 用于通过服务端验证客户端身份。
服务端证书 用于通过客户端验证服务端身份。
集群成员证书 用于集群成员间完成加密通信。

如果你想立即开启一个拥有证书的etcd集群,那么接下来请紧跟博主的步伐。

提示:etcd默认不启用安全认证,需要自己开启。如开启,必须准备一个CA证书和集群成员间的密钥对。此时你需要通过一个工具完成证书的创建,即:cfssl

3. CFSSL工具

3.1 简介

CFSSL是CloudFlare的PKI/TLS武器。它既是一个命令行工具,也是一个用于签名、验证和绑定TLS证书的HTTP API服务器。其需要Go 1.16+的环境才能完成构建。

请注意,某些linux发行版删除了某些算法(特别是基于RHEL的发行版),因此官方存储库中的golang将无法工作。这些发行版的用户应该手动安装CFSSL。

3.2 组成部分

CFSSL由以下部分组成:
- TLS PKI工具

构建自定义TLS PKI工具的包。
- cfssl程序

它是使用cfssl包的规范命令行实用程序。
- multirootca程序

它是一个可以使用多个签名密钥的证书颁发机构服务器。
- mkbundles程序

用于构建证书池捆绑包。
- cfssljson程序

它从cfssl和multirootca程序获取JSON输出,并将证书、密钥、CSR和捆绑包写入磁盘。

3.3 安装

在完成后续操作前,需要准备cfssl环境,因此咱们先开始安装吧。本文通过可执行文件进行安装,当然你可以选择源码编译方式。源码方式可参考:

3.3.1 选择版本

当前最新版是1.6.5,博主以它为例展开以下实践,请准备以下可执行包:

包名 下载地址
cfssl_1.6.5_linux_amd64 点它
cfssljson_1.6.5_linux_amd64 点它
cfssl-certinfo_1.6.5_linux_amd64 点它
3.3.2 安装验证

在linux环境下,按步骤完成以下安装操作:
Step1: wget包

powershell 复制代码
wget https://github.com/cloudflare/cfssl/releases/download/v1.6.5/cfssl_1.6.5_linux_amd64
wget https://github.com/cloudflare/cfssl/releases/download/v1.6.5/cfssljson_1.6.5_linux_amd64
wget https://github.com/cloudflare/cfssl/releases/download/v1.6.5/cfssl-certinfo_1.6.5_linux_amd64

执行完成后,可以看到3个包:

Step2: 赋予执行权限

把3个文件搬到/usr/local/cfssl/bin目录下,赋予执行权限:

powershell 复制代码
cp /usr/local/src/cfssl/cfssl* /usr/local/bin/cfssl
cd /usr/local/bin/cfssl
chmod +x cfssl*

效果如下:

Step3: 验证

此时你可通过以下命令确认安装是否成功:

powershell 复制代码
cfssl_1.6.5_linux_amd64 version

效果如下:

结语

通过该文,我们学习了一个证书制作工具的用途和安装过程。后序将基于此完成更多的相关实践,欢迎关注O~

走过的、路过的盆友们,点点赞,收收藏,并加以指导,以备不时之需哈~

系列回顾


微服务实战系列之玩转Docker(十八)
微服务实战系列之玩转Docker(十七)
微服务实战系列之玩转Docker(十六)
微服务实战系列之玩转Docker(十五)
微服务实战系列之玩转Docker(十四)
微服务实战系列之玩转Docker(十三)
微服务实战系列之玩转Docker(十二)
微服务实战系列之玩转Docker(十一)
微服务实战系列之玩转Docker(十)
微服务实战系列之玩转Docker(九)
微服务实战系列之玩转Docker(八)
微服务实战系列之玩转Docker(七)
微服务实战系列之玩转Docker(六)
微服务实战系列之玩转Docker(五)
微服务实战系列之玩转Docker(四)
微服务实战系列之玩转Docker(三)
微服务实战系列之玩转Docker(二)
微服务实战系列之玩转Docker(一)
微服务实战系列之云原生

相关推荐
赵文宇(温玉)19 小时前
免费|不限速|不限流量|多架构|容器镜像服务---第1批同步:Docker官方维护的143个library镜像仓库
docker·容器·架构
寂寞旅行19 小时前
k8s实现多人同时使用pod
云原生·容器·kubernetes
工具罗某人20 小时前
docker快速部署redis
redis·docker·容器
杨浦老苏21 小时前
轻量级自托管仪表盘Dashlet
docker·群晖·导航
数据库知识分享者小北21 小时前
免费体验《自建 MySQL 迁移至 PolarDB 分布式 V2.0》
数据库·分布式·mysql·阿里云·云原生·polardb
工具罗某人1 天前
docker快速部署minio
java·nginx·docker
三不原则1 天前
实战:Docker+K8s 部署 MNIST 模型,实现 API 调用功能
docker·容器·kubernetes
zhanjixun1 天前
Spring Boot Maven项目构建Docker镜像
spring boot·docker·maven
阿里云云原生1 天前
AI 网关这一年,成了 AI 进化的缩影
云原生
2501_944711431 天前
理清 https 的加密逻辑
网络协议·http·https