docker安全开放远程访问连接权限怎么开启
1、Docker完全开放远程访问
Docker服务完全开放对外访问权限操作如下:
出现如下信息则代表修改Docker服务设置远程访问成功。
特别注意的点:
完全开放Docker对外访问权限有可能会遭到别人攻击,这是很不安全的,只要别人知道你的服务器地址就能够随意连接你的Docker服务,而不需要任何认证,因此,完全开放只推荐自己在内网使用,不推荐在云服务器上直接完全开放。
2、Docker开放远程访问并开启认证和通信加密
为了解决上面Docker完全开放远程访问所带来的安全隐患,我们需要对Docker服务进行通信认证和加密,操作如下:
首先创建一个文件目录,用于存放证书和私钥
然后在 linux-ca 文件夹下进行以下操作:
生成自签名的根证书和私钥
a. 执行以下命令生成根证书私钥文件(例如
ca-key.pem
):
b. 执行以下命令生成根证书文件(例如
ca.pem
)并使用私钥进行签名。在生成证书时,你需要为其分配一个有效期,通常为几年。
生成自签名的服务端证书和私钥
a. 执行以下命令生成私钥文件(例如
server-key.pem
):
b. 执行以下命令生成证书签名请求文件(例如
server.csr
)。
在生成 CSR 文件时,你需要提供一些信息,如组织名称、组织单位、所在国家等。
c. 执行以下命令生成自签名的服务器证书(例如
server-cert.pem
),并使用 CSR 文件和私钥进行签名。
生成自签名的客户端证书和私钥
a. 执行以下命令生成客户端私钥文件(例如
key.pem
):
b. 执行以下命令生成客户端证书签名请求文件(例如
client.csr
)。在生成 CSR 文件时,你需要提供一些信息,如组织名称、组织单位、所在国家等。
c. 执行以下命令生成自签名的客户端证书(例如
cert.pem
),并使用 CSR 文件和私钥进行签名。在生成证书时,你需要为其分配一个有效期,通常为几年。
删除多余的四个请求文件:
完成了上述步骤后,你将获得以下文件:
根证书文件:
ca.pem
根证书私钥文件:
ca-key.pem
服务器端证书文件:
server-cert.pem
服务器端私钥文件:
server-key.pem
客户端证书文件:
cert.pem
客户端私钥文件:
key.pem
特别要注意的是以下四点:
根证书名称必须为 ca.pem
客户端证书必须为 cert.pem
客户端私钥必须为 key.pem
在输入 commonName 信息时必须添加服务器的IP地址,否则Docker可能启动失败
服务端和客户端创建私钥是不能额外添加加密密码,不然会导致服务端、客户端无法解析。
然后是配置Docker守护进程配置文件 daemon.json 具体操作如下:
在以上操作中,我们需要填写正确的证书和私钥存放地址,如果你是按照我上面的步骤来,那没有问题,你什么都不用改。
如果你的证书和私钥的存放地址是自己定义的地址,那么,你需要将 daemon.json 中的地址也相应的修改一下。
完成以上内容后,此时我们在浏览器使用 https://192.168.56.10:2375/version 就无法获取信息了,提示需要身份认证
3、快速完成Docker服务开启认证和通信加密
为了解决第二步流程比较繁琐的问题,我编写了两个自动化配置Shell脚本并且我将其上传到了公网,它们能够帮助我们非常快速的完成第二步的所有流程,
你们可以直接选择使用我创建好的脚本,操作如下:
如果自己创建然后使用,可以参考下面的步骤,具体操作如下:
首先是创建证书和私钥的Shell脚本
我们只需要创建一个 cert.sh 脚本文件,名称可以任取,然后填入如下内容:
该脚本只需要我们在控制台输入证书和私钥的存放地址、根私钥密码以及服务器IP地址三个参数即可,其他的什么都不用做。
如果你按照上面的步骤创建好了 cert.sh 脚本文件并填入了脚本内容,那么接下来我们就可以通过如下命令来执行脚本了
使用 source 命令后接脚本的绝对地址或者相对地址即可执行脚本。
创建Docker守护进程配置脚本
我们创建一个 daemon.sh 脚本文件,名称可以任取,然后填入如下内容:
然后我们可以通过 source 命令后接脚本的绝对地址或者相对地址即可执行脚本。
这个脚本主要是对Docker服务进行通信加密、服务认证、镜像加速配置这三个设置,使用方式和上一个脚本一样。
在执行脚本的过程中,会提示我们输入之前创建的证书和私钥的存放地址,我们必须填写正确的地址,否则会导致Docker服务无法读取证书和私钥。
4、IDEA连接Docker服务
下载证书文件夹到Windows本地,
只需要这三个文件即可:ca.pem、cert.pem、key.pem 将他们下载到本地并装入一个文件夹中
在具体的 IDEA 配置中,可以按照以下步骤进行设置:
打开 IDEA,进入 Settings 。
导航到 Docker 部分(一般是 Build, Execution, Deployment 下的 Docker)。
找到 Connect to Docker daemon with 配置下面的 TCP socket 配置选项
在 Engine API URL 中填入Docker服务连接地址,例如:https://192.168.56.10:2375
在 Certificates folder 中选择装有三个证书文件的文件夹,用以客户端向服务端的身份认证
保存设置并尝试连接到 Docker 服务。
需要注意的是,具体的设置步骤可能因 IDEA 版本而异,请根据你使用的版本进行适当调整。
5、Maven连接Docker服务
有时候我们需要让自己的项目配置Docker服务的连接配置,以方便快速进行项目打包并部署在Docker中,因此,我们需要如下配置:
因为配置过长,我只选取关键的部分展示。