华为云EulerOS 2.0配置docker支持TLS详细教程

一、制作ca证书

步骤1:首先创建一个目录用于存储生成的证书和秘钥

mkdir /home/docker-ca & cd /home/docker-ca

步骤2:创建CA证书私钥,期间需要输入两次用户名和密码,生成文件为ca-key.pem

openssl genrsa -aes256 -out ca-key.pem 4096

密码根据自己情况输入就行,比如我输入都是123456。

步骤3:根据私钥创建CA证书,期间需要输入上一步设置的私钥密码,生成文件为ca.pem

openssl req -new -x509 -days 365 -key ca-key.pem \
-sha256 -subj "/CN=*" -out ca.pem

步骤4:创建服务端私钥,生成文件为server-key.pem

openssl genrsa -out server-key.pem 4096

步骤5:创建服务端证书签名请求文件,用于CA证书给服务端证书签名,生成文件server.csr

openssl req -subj "/CN=*" -sha256 -new \
-key server-key.pem -out server.csr

步骤6:创建CA证书签名好的服务端证书,期间需要输入CA证书私钥密码,生成文件为server-cert.pem

openssl x509 -req -days 365 -sha256 -in server.csr \
-CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem

步骤7:创建客户端私钥,生成文件为key.pem

openssl genrsa -out key.pem 4096

步骤8:创建客户端证书签名请求文件,用于CA证书给客户证书签名,生成文件client.csr

openssl req -subj "/CN=client" -new -key key.pem -out client.csr

步骤9:为了让秘钥适合客户端认证,创建一个扩展配置文件extfile-client.cnf

echo extendedKeyUsage = clientAuth > extfile-client.cnf

步骤10:创建CA证书签名好的客户端证书,期间需要输入CA证书私钥密码,生成文件为cert.pem

openssl x509 -req -days 365 -sha256 -in client.csr \
-CA ca.pem -CAkey ca-key.pem -CAcreateserial \
-out cert.pem -extfile extfile-client.cnf

步骤11:删除创建过程中多余的文件

rm -rf ca.srl server.csr client.csr extfile-client.cnf

最终生成文件如下,有了它们我们就可以进行基于TLS的安全访问了

ca.pem CA证书
ca-key.pem CA证书私钥
server-cert.pem 服务端证书
server-key.pem 服务端证书私钥
cert.pem 客户端证书
key.pem 客户端证书私钥

二、配置docker支持TLS

步骤1:创建docker服务启动文件

mkdir /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/override.conf

步骤2:在原来的基础上往后添加启动参数

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd \
  --tlsverify \
  --tlscacert=/home/docker-ca/ca.pem \
  --tlscert=/home/docker-ca/server-cert.pem \
  --tlskey=/home/docker-ca/server-key.pem \
  -H tcp://0.0.0.0:2375 \
  -H unix:///var/run/docker.sock

步骤3:然后保存文件,执行下面命令重新加载systemctl配置。

systemctl daemon-reload

步骤4:重启Docker容器

sudo systemctl restart docker
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐