| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> etcd TLS集群 -> 正文阅读 |
|
[网络协议]etcd TLS集群 |
概述etcd集群默认情况下使用明文互相通讯,在某些场景下不安全,etcd走的都是HTTP协议,当然可以使用TLS/SSL方式加密通讯。 etcd集群用到三个证书: client证书:用于客户端程序,如etcdctl连接 server证书:服务器证书,验证客户端身份 peer证书: 集群成员直接通讯使用 证书的X509v3 extensions信息部分,X509v3 Extended Key Usage表示证书的用途。 server证书"server auth",client证书"client auth",peer证书"server auth"、"client auth" server证书、peer证书可以每个节点用一个,也可以用一个,但注意在证书SAN信息中添加节点的IP或主机名。 etcdctl等客户端工具使用client证书,“--peer-*-file”配置使用peer证书。“--*-file”配置使用server证书,也可以使用peer证书,但不能使用client证书。 相比明文的通信,TLS集群多出如下参数: --cert-file --client-cert-auth --key-file --trusted-ca-file --peer-cert-file --peer-client-cert-auth --peer-key-file --peer-trusted-ca-file 实验准备本次实验使用3个主机,server证书和peer证书每个节点各一个,client证书通用。网上有的方案,所有节点peer用一个证书 serve用一个证书,有的方案peer和server都用一个证书。大家根据实际情况自行决定用多少证书,毕竟证书太多不好管理。
生成证书生成证书有很多种方式,如openssl、easy-rsa ,这里使用cfssl方法生成证书。 安装cfssl不在这里介绍,参考其它文档。 我的cfssl程序安装在主机vm53上,所有需要的证书制作完成后,复制到其它节点。 证书csr.json信息中hosts字段部分是关键配置,必须包含运行节点的IP。 CA证书ca-config.json内容如下:
注意:peer部分同时启用了“server auth”和“client auth”. ca-csr.json内容如下:
生成CA的证书和秘钥 cfssl gencert -initca ca-csr.json | cfssljson -bare ca - vm53的证书server-node1.json内容如下
生成server证书 cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=server server-node1.json | cfssljson -bare server-node1 查看server-node1.pem证书文件详情: openssl x509 -in /home/cfssl/server-node1.pem ?-text ?可以看到证书用于server端的验证。 peer-node1.json内容如下
生成peer证书 cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer peer-node1.json | cfssljson -bare peer-node1 vm54的证书server-node2.json
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=server server-node2.json | cfssljson -bare server-node2 ?peer-node2.json
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer peer-node2.json | cfssljson -bare peer-node2 vm55的证书server-node3.json
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=server server-node3.json | cfssljson -bare server-node3 peer-node3.json
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer peer-node3.json | cfssljson -bare peer-node3 client证书?client.json
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client client.json | cfssljson -bare client 启动程序vm53上启动node1
vm54上启动node2
vm55启动node3
检查验证集群是否成功创建,使用etcdctl需要跟上证书路径 etcdctl --endpoints=https://192.168.0.53:2379 --cacert=/home/cfssl/ca.pem --cert=/home/cfssl/client.pem --key=/home/cfssl/client-key.pem member list --write-out=table |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:45:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |