1 2 3 4 5 6 7 8 9 10 | { "tlsverify": true, "tlscert": "/root/cert/server-cert.pem", "tlskey": "/root/cert/server-key.pem", "tlscacert": "/root/cert/ca.pem", "hosts": [ "tcp://0.0.0.0:2376", "unix:///var/run/docker.sock" ] } |
tls 原理,通信双方都必须制定好三个东西,可信任证书,本地证书,本地密钥。
DefaultDockerClientConfig config = DefaultDockerClientConfig
.withDockerCertPath("/tls/docker/");
- DOCKER_TLS_VERIFY 是否开启 TLS 验证 (http 和 https 之间切换)
- DOCKER_CERT_PATH TLS 验证的证书路径
程序员都在学的docker--docker安全TLS验证(ca证书、服务端证书、客户端证书)_dockerd --tlsverify-CSDN博客
一、 Docker-TLS加密通讯
1.1 TLS介绍
TLS (Transport Layer Security)指传输层安全,是解决网络安全的重量级武器。传输层安全最早由网景公司所开发,那时的名字还不叫TLS,而是SSL(Secure Sockets Layer),即安全套接字层。
TLS 加密通讯:
为了防止链路劫持、会话劫持等问题导致 Docker 通信时被中间人攻击,C/S 两端应该通过加密方式通讯。
TLS协议的优势:
TLS协议的优势是与高层的应用层协议(如HTTP、FTP、Telnet等)无耦合。应用层协议能透明地运行在TLS协议之上,由TLS协议进行创建加密通道需要的协商和认证。应用层协议传送的数据在通过TLS协议时都会被加密,从而保证通信的私密性
1.2 CA证书
证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
CA 证书颁发的时候,证书中是包含密钥对的,同时用户信息也是进行加密的,所以CA颁发的证书具有两个特点:用户发送的信息都是加密的;身份的唯一性。
证书创建流程
创建证书有三步
1.设置私钥 确保安全加密
2.私钥签名 确保身份真实不可抵赖
3.制作证书
服务端:ca密钥(ca-key.pem) ----》ca证书 (ca.pem )
----》服务器私钥(server-key.pem)----》服务器私钥签名(server.csr)----》最后通过ca密钥、ca证书、服务端私钥签名-生成服务端证书(server-cert.pem)
客户端 :私钥(key.pem )----》私钥签名(client.csr)----》ca 密钥----》ca密钥证书----》客户端签名证书(cert.pem)
服务端签名证书server-cert.pem----(ca 密钥 、 ca 证书、服务端签名)
客户端签名证书cert.pem --------(ca 密钥 、 ca 证书、服务端签名)
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/kimowinter/article/details/108974244
https://101.126.81.163:2375/images/json
https://docs.docker.com/engine/api/sdk/