【https】DockerClient端与DockerDaemon的通信安全

本文介绍了HTTPS在Docker通信中的应用,防止中间人攻击。讲解了HTTPS的工作流程,包括客户端验证服务器证书、生成对称密钥进行加密通信。同时,详细阐述了如何创建自签名证书,包括创建CA证书、生成服务器私钥和CSR文件,以确保Docker Daemon与Docker Client间的安全连接。

DockerClient端与DockerDaemon的通信安全

1.HTTPS概述

为了防止链路劫持、会话劫持等问题导致Docker通信时,被中间人攻击,c/s两端应该通过TLS加密方式通讯。
通过在服务端上创建tls密钥证书,再下发给客户端,客户端通过私钥访问容器,这样就保证docker通讯的安全性。

使用证书访问的工作流程:

(1)客户端发起HTTPS请求,连接到服务器的443端口。
(2)服务器必须要先申请好一套数字证书(证书内容有公钥、证书颁发机构、失效日期等)。
(3)服务器将自己的数字证书发送给客户端(公钥在证书里面,私钥由服务器持有)。
(4) 客户端收到数字证书之后,会先验证证书的合法性。如果证书验证通过,就会使用伪随机数生成器(/dev/random)随机生成一个【对称密钥】,使用证书的公钥加密这个【对称密钥】。
(5)客户端将公钥加密后的【对称密钥】发送到服务器。
(6)服务器接收到客户端发来的密文密钥之后,用自己之前保留的私钥对其进行非对称解密,解密之后就得到客户端的【对称密钥】,然后用客户端的【对称密钥】对返回数据进行加密,这样传输的数据都是密文了。
(7)服务器将加密后的密文数据返回到客户端。
(8)客户端收到后,用自己的【对称密钥】对其进行对称解密,得到服务器返回的数据。

首先创建ca证书,ca证书只是一个官方认证的证书,接下来要创建server、client节点的证书。此时创建证书有三步:
(1) 设置私钥,确保安全加密
(2) 使用私钥签名,确保身份真实不可抵赖
(3)使用ca证书制作证书

在这里插入图片描述

https请求访问过程:
0)服务端会事先通过 CA 签发证书和私钥
1)客户端发送 https 请求到服务端的 443 端口
2)服务端发送包含公钥、证书有效期及 CA 机构等信息的证书给客户端
3)客户端会先通过 CA 验证证书的有效性
4)若证书有效,客户端会在本地随机生成会话密码并通过服务端发来的公钥加密后返回给服务端
5)服务器用私钥解密获取会话密钥,之后双方即可使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌上花开,静待绽放!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值