我正在尝试创建一个docker swarm,它的证书在一年或更长时间后过期。文档说明了语法,我尝试了这个docker swarm init --cert-expiry 8760h0m0s,但是在cat /var/lib/docker/swarm/certificates/swarm-node.crt下,当我解密证书时,有效期仍然是3个月。如何确保有效性是我设置的值?
发布于 2019-08-06 20:16:14
您可以使用Docker工具手动生成证书,并配置OpenSSL守护进程以使用这些证书。
生成服务器证书
openssl genrsa和ca-key.pem 4096 openssl -out -new -x509 -days 1000 -key ca-key.pem -sha256 -out ca.pem
openssl genrsa -out服务器-key.pem 4096 openssl请求-subj "/CN=my.company.com“-sha256 -new -key服务器-key.pem -out使用CA:
echo subjectAltName = DNS:my.company.com,IP:127.0.0.1 >> extfile.cnf echo extendedKeyUsage = serverAuth >> echo密钥:
openssl x509 -req -days 1000 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf
生成客户端证书
openssl genrsa -out key.pem 4096 openssl请求-subj '/CN=client‘-new -key key.pem -out openssl genrsa-out key.pem一个扩展配置文件:
extfile.cnf
使用/etc/ Docker /daemon.json配置docker守护进程
{
"debug": false,
"tls": true,
"tlsverify": true,
"tlscacert": "/etc/docker/certificates/server/ca.pem",
"tlscert": "/etc/docker/certificates/server/server-cert.pem",
"tlskey": "/etc/docker/certificates/server/server-key.pem",
"hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"]
}启动Docker服务
systemctl start docker请看这篇文章Building Jenkins Pipelines – Setting Up Docker Swarm。这里有一个逐步指南。
发布于 2020-09-21 23:09:35
在任意管理节点上运行以下命令:
docker swarm update --cert-expiry 8760h0m0s
docker swarm ca --rotate | openssl x509 -text -noout第一个将设置证书的过期日期。最后一个将实际应用更改并自动轮换所有群集节点上的证书。如果对解码cert文本输出不感兴趣,可以省略openssl部分。
https://stackoverflow.com/questions/44854179
复制相似问题