【简单】Docker - 实战TLS加密通讯

剪发的Tony 2019-04-12 15:34:08 ⋅ 820 阅读

快速配置一个最简单的docker TLS加密通讯

一、使用说明

演示环境(centos7,docker17.06.0-ce)

创建一个文件夹

mkdir /sslcd /ssl

创建ca密钥

openssl genrsa -aes256 -out ca-key.pem 4096
创建ca证书
openssl req -new -x509 -days 1000 -key ca-key.pem -sha256 -subj "/CN=*" -out ca.pem
创建服务器私钥
openssl genrsa -out server-key.pem 4096
签名私钥
openssl req -subj "/CN=*" -sha256 -new -key server-key.pem -out server.csr
使用ca证书与私钥证书签名
openssl x509 -req -days 1000 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem
生成客户端密钥
openssl genrsa -out key.pem 4096
签名客户端
openssl req -subj "/CN=client" -new -key key.pem -out client.cs
创建配置文件
echo extendedKeyUsage=clientAuth > extfile.cnf
签名证书
openssl x509 -req -days 1000 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf
删除多余文件
rm -rf ca.srl client.csr extfile.cnf server.csr
二、配置docker

cat /lib/systemd/system/docker.service
将里面的
ExecStart=/usr/bin/dockerd
修改为
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/ssl/ca.pem --tlscert=/ssl/server-cert.pem --tlskey=/ssl/server-key.pem -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock
重启后台进程

systemctl daemon-reload
重启docker服务

systemctl restart docker
/ssl/ca.pem /ssl/cert.pem /ssl/key.pem 三个文件复制到另一台主机
直接使用IP地扯连接如出现如下错误
cannot validate certificate for x.x.x.x because it doesn't contain any IP SANs
不使用localhost方法:将以上创建证书中的/CN=*星号修改成自己的域名即可(例如:/CN=dounine.com

docker主机连接测试

docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H tcp://localhost:2376 version
成功连接提示信息
Client: Version: 17.06.0-ce API version: 1.30 Go version: go1.8.3 Git commit: 02c1d87 Built: Fri Jun 23 21:20:36 2017 OS/Arch: linux/amd64
Server: Version: 17.06.0-ce API version: 1.30 (minimum version 1.12) Go version: go1.8.3 Git commit: 02c1d87 Built: Fri Jun 23 21:21:56 2017 OS/Arch: linux/amd64 Experimental: false




   


作者:大猪大猪
链接:https://www.jianshu.com/p/9e513f57853b

---------------END----------------

后续的内容同样精彩

长按关注“IT实战联盟”哦




全部评论: 0

    我有话说:

    项目中为什么用Docker

      项目为什么要用 docker,需要了解 docker 的优势,结合项目的实际情况来决定是否需要使用 docker,千万不能“为了使用而使用”或者“跟风使用 docker”。 使用

    项目中为什么用docker

    前几天,公司一批服务器就要到期了,由于服务器是15年购买的,硬件的性能远比现在新出的云主机低,因此决定把所有服务器都换成新一代服务器,但是小编整准备动手迁移服务器时,内心一阵阵崩溃感涌上心头,仔细一算,每台服务器都要做同样的事情,然后他们说可以用...

    精品推荐:Docker与自动化测试及其测试实践

    Docker 本身并不会直接加速测试执行。在串行执行测试时,在容器中执行测试反而会带来约 5% 左右的性能衰减。

    单点登录原理与简单实现

    一、单系统登录机制 1、http无状态协议   web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求

    Docker - 大数据环境快速搭建步骤

    快速搭建一个大数据的环境,我们可以使用Docker实现,文章会演示如何使用。

    运用Docker快速部署分布式项目

    快速搭建Docker分布式项目环境

    前端实战篇:JavaScript 反调试技巧的简单应用(下)

    通过时间差异、DevTools检测(Chrome)、隐式流完整性控制和 代理对象来达到JavaScript反调试目的

    前端实战篇:通过JS抓取城市所有站点与线路

    做公交线路定位,木有数据怎么办?网上抓去~ 手把手教你通过JS实现站点线路数据抓取

    MySql实战篇:写一个简单的存储过程,完成订单定时任务

    前言之前我们分享了MySql的性能优化、索引详解等内容,本篇文章主要是针对想要入门MySql存储过程的读者,主要实现的业务是订单库里面的超过30分钟没有支付的订单全部置为失效订单......

    微信小程序电商实战-商品详情加入购物车(下)

    今天会接着上一篇开始写商品详情页加入购物车的部分,直接看效果......

    V-IM 0.6.2 发布,即时通讯软件

    V-IM 是一个桌面聊天程序。 前端:采用 vue、iview、electron 实现,主要适用于私有云项目内部聊天,企业内部管理通讯等功能,主要通讯协议 websocket。支持 web 网页聊天

    Docker Desktop 3.0.0 发布,Docker Hub 限制免费用户

    Docker Desktop 3.0.0 版本发布了。Docker Desktop 是一个支持 Windows 和 MAC 系统的完整桌面开发环境,包括 Docker App,开发人员工具

    Proxy-Go v10.2 发布,新增自由指定出口 IP!

    、SSH 中转、TLS 加密传输、协议转换、DNS...

    Docker 20.10.6 发布,正式支持 Apple M1

    Docker 20.10.6 现已发布,具体更新内容如下: Client Apple Silicon (darwin/arm64) 对 Docker CLI 的支持 

    「推荐」通过API网关实现微服务管控-限流,熔断和降级

      今天准备谈下基于API网关来实现微服务治理管控中的服务限流,熔断和降级方面的内容。在前面谈微服务架构的时候也谈到过类似通过Hystrix,Sentinel来是服务限流熔断。包括也不断

    React生命周期&原生通信,挺简单

    由四张图引发的一系列事件。。。。

    Docker 20.10.0 发布, K8s 宣布将弃用 Docker 容器进行时之后发布的首个 版本

    Docker 20.10.0  发布了,这是自 K8s 宣布将弃用 Docker 容器进行时之后发布的首个 Docker 版本。 本次更新内容包括: 弃用/移除 当 docker 从不

    Fluid 0.3 正式发布:实现云原生场景通用化数据加速

    简介 为了解决大数据、AI 等数据密集型应用在云原生计算存储分离场景下,存在的数据访问延时高、联合分析难、多维管理杂等痛点问题,南京大学 PASALab、阿里巴巴、Alluxio 在 2020 年

    《CSS 揭秘》译者,百姓网前端架构 TL 带来更多干货,等你来撩~~~

    春节小长假已经过完了,《IT实战联盟》 也开始准备更新更多优质的实战资源帮助大家解决工作中的实际问题。