实战「 docker TLS加密通讯 」
2017-07-08 17:20
519 查看
快速配置一个最简单的docker TLS加密通讯
创建ca密钥
创建ca证书
创建服务器私钥
签名私钥
使用ca证书与私钥证书签名
生成客户端密钥
签名客户端
创建配置文件
签名证书
删除多余文件
将
修改为
重启后台进程
重启docker服务
将
将连接的主机加入到Hosts文件中(如若不想设置请参考以下方法)
不修改Hosts方法:将以上创建证书中的
docker主机连接测试
成功连接提示信息
使用说明
演示环境(centos7,docker17.06.0-ce)
创建一个文件夹mkdir /ssl cd /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.csr
创建配置文件
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 extendedKeyUsage=clientAuth
将
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三个文件复制到另一台主机
将连接的主机加入到Hosts文件中(如若不想设置请参考以下方法)
echo "x.x.x.x abc" >> /etc/hosts
不修改Hosts方法:将以上创建证书中的
/CN=*星号修改成自己的域名即可(例如:
/CN=dounine.com)
docker主机连接测试
docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H tcp://abc: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
相关文章推荐
- PHP-RSA加密跨域通讯实战
- docker daemon的HTTP socket TLS加密连接
- 【docker】开启remote api访问,并使用TLS加密
- PHP-RSA加密跨域通讯实战
- 使用TLS加密Docker的API
- 网络通讯,网络协议控件,SSH 安全组件,MIME加密组件,数字证书
- python技巧(一)python中调用javascript进行rsa加密签名,并布署到docker上
- 项目实战:JNI-Java与C的交互(简单加密解密)
- 使用 TLS 加密保护 VNC 服务器的简单指南 | Linux 中国
- Docker Registry Server 搭建,配置免费HTTPS证书,及拥有权限认证、TLS 的私有仓库
- spark 实战 1: 基于gettyimages spark docker image 创建spark 集群
- Docker实战(十)之分布式处理与大数据平台
- Docker 实战——将 JavaWeb 应用容器化
- 『中级篇』Dockerfile实战(19)
- 安装docker镜像时Error checking TLS connection: Error checking and/or regenerating the certs
- sql 2005数据库加密实战
- UDP协议实现对等通讯Java+RSA加密解密传送信息实现
- 网站后端.Flask.实战-社交博客开发-密码加密?
- Docker实战(六):Docker安装Redis
- Docker学习总结(1)——Docker实战之入门以及Dockerfile(一)