Docker 开启SSL证书加密远程链接
- 1. 使用openssl 制作证书密钥
- 1.1. 在服务器中新建目录/etc/docker,并切换到该目录下
- 1.2. 创建根证书RSA私钥:
- 1.3. 创建CA证书
- 1.4. 创建服务端私钥
- 1.5. 创建服务端签名请求证书文件
- 1.6. 创建签名生效的服务端证书文件
- 1.7. 创建客户端私钥
- 1.8. 创建客户端签名请求证书文件
- 1.9. 创建extfile.cnf的配置文件
- 1.10. 创建签名生效的客户端证书文件
- 1.11. 删除多余文件
- 2. 配置Docker支持TSL链接
- 2.1. 编辑docker.service配置文件
- 2.2. 刷新配置,重启Docker
- 3. 验证TSL方式远程链接Docker
- 3.1. 将服务器/etc/docker目录下的ca.pem、cert.pem、key.pem三个文件复制到客户端
- 3.2 在客户端测试链接
- 4. 使用windows图形化工具进行验证
- 4.1. 下载安装Dcoker远程链接工具
1. 使用openssl 制作证书密钥
1.1. 在服务器中新建目录/etc/docker,并切换到该目录下
mkdir /etc/docker && cd /etc/docker
1.2. 创建根证书RSA私钥:
openssl genrsa -aes256 -out ca-key.pem 4096
备注:此处会提示输入证书密码,一共需要输入两次,请根据实际情况设置密码,设置成功后目录下生成ca-key.pem密钥文件
1.3. 创建CA证书
openssl req -new -x509 -days 1000 -key ca-key.pem -sha256 -subj "/CN=*" -out ca.pem
备注:以上一步生成的ca-key.pem秘钥创建证书,这里是自己作为ca机构,自己给自己签发证书,也可以从第三方ca机构服务商处签发证书。
1.4. 创建服务端私钥
openssl genrsa -out server-key.pem 4096
备注:此处生成server-key.pem密钥(服务端私钥)。
1.5. 创建服务端签名请求证书文件
openssl req -subj "/CN=*" -sha256 -new -key server-key.pem -out server.csr
备注:此处生成服务端证书文件server.csr 。
1.6. 创建签名生效的服务端证书文件
openssl x509 -req -days 1000 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem
备注:此处签名后的正式server-cert.pem为签名生效的服务端证书。创建期间要求输入证书密码(之前创建的证书密码)
1.7. 创建客户端私钥
openssl genrsa -out key.pem 4096
备注:此处生成的key.pem文件为客户端私钥,用于客户端远程链接认证
1.8. 创建客户端签名请求证书文件
openssl req -subj "/CN=client" -new -key key.pem -out client.csr
备注:此处生成的为客户端签的证书文件client.csr。
1.9. 创建extfile.cnf的配置文件
echo extendedKeyUsage=clientAuth > extfile.cnf
1.10. 创建签名生效的客户端证书文件
openssl x509 -req -days 1000 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf
备注:此处生成的为客户端证书文件,用于客户端远程链接认证。
1.11. 删除多余文件
rm -rf ca.srl client.csr extfile.cnf server.csr
备注:删除多余文件后,该目录下剩余:
ca.pem CA机构证书
ca-key.pem 根证书RSA私钥
cert.pem 客户端证书
key.pem 客户私钥
server-cert.pem 服务端证书
server-key.pem 服务端私钥
2. 配置Docker支持TSL链接
2.1. 编辑docker.service配置文件
vim /lib/systemd/system/docker.service
找到ExecStart = 开头的一行代码,将其替换为如下内容:
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem
备注:此处指定了ca证书、服务端证书和服务端密钥,端口设置为:2375(docker默认端口)
2.2. 刷新配置,重启Docker
systemctl daemon-reload && systemctl restart docker
3. 验证TSL方式远程链接Docker
3.1. 将服务器/etc/docker目录下的ca.pem、cert.pem、key.pem三个文件复制到客户端
可以通过scp命令远程复制到指定机器,也可以通过工具进行上下载上传,此处不详细介绍。
3.2 在客户端测试链接
docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H tcp://192.168.199.11:2375 version
备注:请切换至证书文件存放目录,执行上述命令,tcp://docke服务器宿主机地址:端口 进行链接测试,如过输出正确的docker版本信息,则表明配置成功。
4. 使用windows图形化工具进行验证
4.1. 下载安装Dcoker远程链接工具
下载地址:Docker Client v1.2.1 远程链接工具 for windows x64 软件说明:本软件下载需要5积分,如有需要也可以在下方评论区留言邮箱,免费发送至对应邮箱。
安装方法:按照默认方式进行下一步安装即可。
程序主界面:
软件使用说明请移步:Docker Client v1.2.1 使用说明文档。