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)服务器用私钥解密获取会话密钥,之后双方即可使用

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

1985

被折叠的 条评论
为什么被折叠?



