微服务实战系列之玩转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(一)
微服务实战系列之云原生

相关推荐
嗑瓜子儿溜茶水儿5 小时前
docker 部署 NginX
nginx·docker·容器
G_whang6 小时前
mac m2 安装 docker
macos·docker·容器
Ethan301410 小时前
微服务概论(https://microservices.io/)
微服务·云原生·架构
明 庭10 小时前
在 Ubuntu 下通过 Docker 部署 MySQL 服务器
服务器·ubuntu·docker
leilifengxingmw11 小时前
Docker学习相关笔记,持续更新
笔记·学习·docker
童安格粉丝13 小时前
Docker图形化界面工具Portainer最佳实践
运维·redis·docker·容器·portainer·实践·详解
噎住佩奇14 小时前
Fabric部署-docker-compose安装
docker·fabric
蓝天~白云14 小时前
docker 更换存储路径
运维·docker·容器
林小夕success14 小时前
docker下载redis,zookeeper,kafka超时time out
redis·docker·zookeeper
steveqobs15 小时前
Debian-linux运维-docker安装和配置
linux·运维·docker·debian