啃Docker之TLS加密通讯部署

一:Docker-TLS加密通讯部署

1.1:什么是TLS?有什么作用?

  • TLS(Transport Layer Security Protocol):传输层安全性协议,其前身安全套接层(Secure Sockets Layer,缩写作SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。

  • TLS协议采用主从式架构模型,用于在两个应用程序间透过网络创建起安全的连线,防止在交换数据时受到窃听及篡改

  • TLS的最大优势就在于:TLS是独立与应用协议。高层协议可以透明地分布在TLS协议上面。然后,TLS标准并没有规定应用程序如何在TLS上增加安全性;它如何启动TLS握手协议以及如何解释交换地认证证书地决定权留给协议的设计者和实施者来判断

  • TLS的主要增加内容,TLS的主要目标是使SSL更安全,并是协议的规范更加精确和完善。TLS在SSL v3.0的基础上,提供了以下增加内容:

     1.更加安全的MAC算法
     2.更加严密的警报
     3.“灰色区域”的规范更加明确
    

1.2:为什么要使用TLS加密?

  • 为了防止链路劫持、会话劫持等问题导致 Docker 通信时被中 间人攻击,c/s 两端应该通过加密方式通讯。

1.3:TLS对于安全性的改进

1.对于消息认证使用密钥散列法:TLS使用“消息认证代码的密钥散列法”(HMAC),当记录在开放的网络,比如internet上传送时,该代码确保记录不会被变更。SSLv3.0还提供给键控消息认证,但是HMAC比SSLv3.0使用(消息认证代码)MAC功能更加安全。	
2.增强的伪随机功能(PRF):PRF生成密钥数据。在TLS中,HMAC定义PRF。PRF使用两种散列算法保证其安全性。如果任一算法暴露了,只要第二种算法未暴露,则数据仍然是安全的。	
3.改进的已完成消息验证:TLS和SSLv3.0都对两个端点提供已完成的消息,该消息认证交换的消息没有被变更。然而,TLS将此已完成消息基于PRF和HMAC值之上,这也比SSLv3.0更安全。	
4.一致证书处理:与SSLv3.0不同,TLS试图指定必须在TLS之间实现交换的证书类型。	
5.特定警报消息:TLS提供更多的特定和附加警报,以指示任一会话端点检测到的问题。TLS还对何时应该发送某些警报进行记录。

1.4:在Docker中部署TLS

  • 环境
    在公司的docker业务中,一般为了防止链路劫持、会话劫持等问题导致docker通信时被中间人攻击,c/s两端应该通过加密方式通讯
主机名 IP地址 部署的服务
server 20.0.0.51 docker-ce
client 20.0.0.54 docker-ce
  • 流程
    秘钥key—> 身份前面csr---->(服务器/客户端) (结合ca.pem) 制作证书pem

  • 开局优化

[root@localhost ~]# hostnamectl set-hostname server	'两台主机修改主机名'
[root@localhost ~]# su
[root@server ~]# 
[root@localhost ~]# hostnamectl set-hostname client
[root@localhost ~]# su
[root@client ~]# 
[root@server ~]# cat >> /etc/hosts << EOF	'修改本地主机解析文件'
> 192.168.233.128 server
> 192.168.233.129 client
> EOF
[root@client ~]# cat >> /etc/hosts << EOF
> 192.168.233.128 server
> 192.168.233.129 client
> EOF
[root@client ~]# ping server	'是可以互通的'
[root@server ~]# ping client
  • server服务器创建CA密码与CA证书
[root@server ~]# mkdir TLS
[root@server ~]# cd TLS/
[root@server TLS]# openssl genrsa -aes256 -out ca-key.pem 4096	'使用rsa非对称秘钥,位数256位,-out 输出密钥文件ca-key.pem'
Generating RSA private key, 4096 bit long modulus
...........................................................................................................................
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker Swarm 是 Docker 官方提供的容器编排工具,它使得在多个 Docker 服务器上管理和协调容器应用变得简单。Swarm 部署环境通常包括以下几个关键组件: 1. **Swarm Manager**:Swarm 中的核心节点,负责集群的管理、任务调度以及状态同步。至少需要一个 Manager 节点来初始化和运行集群。 2. **Worker Nodes**:执行实际容器任务的节点。它们可以是物理机器或虚拟机,需要安装 Docker 并加入到 Swarm 中。 3. **网络**:Swarm 需要一个共享的网络连接,以确保容器之间的通信。这可以通过 Docker 内置的 overlay network 或者外部网络实现。 4. **认证与授权**:为了安全,Swarm 会使用 TLS 加密进行通信,并且支持身份验证,例如通过 swarm ca(证书颁发机构)和 swarm token。 5. **Docker客户端**:开发者或运维人员通常使用 Docker CLI 或 Docker Desktop 进行与 Swarm 的交互,如创建服务、部署应用等。 部署步骤概览: 1. **安装 Docker**:确保所有节点都已安装 Docker,并且版本支持 Swarm 功能。 2. **初始化 Swarm**:在其中一个节点上运行 `docker swarm init`,创建一个新的 Swarm。 3. **加入 Worker**:其他节点通过 `docker swarm join` 命令加入到集群。 4. **创建服务**:使用 `docker service create` 创建并部署服务定义,指定资源限制和网络策略。 5. **监控与管理**:使用 Docker CLI 或者 Docker Dashboard 监控集群状态和服务性能。 相关问题: 1. 如何配置 Swarm 集群的认证? 2. Swarm 中的服务是如何部署和管理的? 3. Docker Overlay Network 在 Swarm 中的作用是什么?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值