自动生成Docker TLS证书,使 Docker 跨平台连接更安全!
使用vi/vim
来打开 auto-tls.sh
文件:
# 配置服务器IP,(必须):
ip="127.0.0.1"
# 配置密码信息 (必须):
password="any"
# 配置生成文件名 (必须):
filename="tls"
# default
days=1000
运行该脚本将自动生成两个tar存档:
- tls-server.tar.gz
- tls-client.tar.gz
配置 docker TLS 传输的两种方式:
$ cd /etc/docker/
$ vi daemon.json
{
"tlsverify": true,
"tlscacert": "/etc/cert path", // ca-xxx.pem
"tlscert": "/etc/cert path", // server-cert-xxx.pem
"tlskey": "/etc/cert path", // server-key-xxx.pem
"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
}
$ systemctl daemon-reload
$ systemctl restart docker
提示: 如果重新启动期间发生错误,请修改文件:
修改 docker.service
文件, 改文件位于: /usr/lib/systemd/system/docker.service
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
# modify:
ExecStart=/usr/bin/dockerd
$ vi /usr/lib/systemd/system/docker.service
# 添加修改代码:
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/<cert path> --tlscert=/etc/<cert path> --tlskey=/etc/<cert path> -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
$ systemctl daemon-reload
$ systemctl restart docker
复制 tls-client.tar.gz
到另外一台服务器并解压,使用证书连接:
$ docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H tcp://ip:2375 ps