微服务实战系列之玩转Docker(十九)
前言
听闻一句话:
“快乐有迹可循,热爱漫无边际”
。的确,当你站在热爱的土地上,快乐的“小芽”
自然会“悄然萌发”
。——碎碎念
玩转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包
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目录下,赋予执行权限:
cp /usr/local/src/cfssl/cfssl* /usr/local/bin/cfssl
cd /usr/local/bin/cfssl
chmod +x cfssl*
效果如下:
Step3: 验证
此时你可通过以下命令确认安装是否成功:
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(一)
微服务实战系列之云原生
原文地址:https://blog.csdn.net/splendid_java/article/details/143738537
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!