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移植部署加密 docker 加密_服务端


软件使用说明请移步:Docker Client v1.2.1 使用说明文档