配置 TLS 身份验证以限制通过 IP 和端口访问 Docker 守护进程。
默认情况下, Docker 守护程序绑定到非联网的 Unix 套接字,并以 root 权限运行。
如果将默认的 Docker 守护程序更改为绑定到 TCP 端口或任何其他 Unix 套接字,那么任何有权访问该端口或套接字的人都可以完全访问 Docker 守护程序,进而可以访问主机系统。
因此,不应该将 Docker 守护程序绑定到另一个 IP /端口或 Unix 套接字。
如果必须通过网络套接字暴露 Docker 守护程序,请为守护程序配置 TLS 身份验证
生产环境下避免开启 tcp 监听,若避免不了,执行以下 *** 作。
192.168.235.128 为当前主机 IP 地址
停服务
编辑配置文件
替换 ExecStart=/usr/bin/dockerd 为以下
重启
在使用容器访问一个自签名证书站点的时候碰到如下报错:
解决方法:将该证书加到Docker镜像中,让系统信任这类证书
我使用的是基于alpine的镜像,Dockerfile如下
build镜像过程中看到如下提醒,可以忽略
启动并进入容器内检查 cat /etc/ssl/certs/ca-certificates.crt ,自签名证书已经被加入ca-certificates.crt文件,系统已信任该证书。
参考: CA certificate on linux
我们需要使用一个完成的PKI基础设施,创建自己的证书授权中心,并且客户端和服务端都需要支持TLS认证。
秘钥的生成和证书的签发都有现成的文档,不做叙述。这里只说三个重点。
服务端有两个参数需要注意一下
--tls: 只启用TLS,而不适用客户端的验证功能,类似于https
--tlsverify: 启用客户端的验证功能
客户端有两个参数需要注意一下
--tls: 只启用TLS,而不适用客户端的验证功能,类似于https
--tlsverify: 启用客户端的验证功能
需要增加一个额外的扩展字段
下面是相关资料
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)