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

相关推荐
生活爱好者!11 小时前
哇!影视新玩法!docker部署NEOWATCH NAS
运维·docker·容器
cpolar技术支持15 小时前
Docker 容器启动失败怎么查?端口、日志、权限与网络排障完整教程
linux·docker·容器·cpolar·网络排障
Lsetea16 小时前
Kubernetes 1.37 Pod证书怎么签发:Signer与mTLS信任链排查
云原生·kubernetes·ssl证书·tls·mtls
一技安身17 小时前
【大模型】Win11 部署 DeepSeek+ RAGFlow0.27.2 (Ollama方案,断网可用)
docker·ai·语言模型
新时代牛马18 小时前
docker run 起不来?从dockerd、containerd 到runc 一条线讲透
运维·docker·容器
JavaPub-rodert18 小时前
Docker 安装 MySQL 完整教程:从零部署数据库,到生产环境持久化配置
数据库·mysql·docker
努力努力再努力wz19 小时前
【Docker 入门系列】:从 Namespace、CGroup 到 LXC:理解容器运行时、rootfs 与 LXC 实战
运维·docker·容器
JavaPub-rodert20 小时前
Docker 多阶段构建:为什么生产环境镜像可以小 90%
运维·docker·容器
2601_9622184720 小时前
万象生鲜系统多账套隔离技术适配集团生鲜企业集团化数字化管控
大数据·运维·微服务·云原生·架构
@PHARAOH21 小时前
WHAT - 微服务统一入口配置原理
微服务·云原生·架构