本文基于:Centos7 ,Docker version 20.10.0, build 7287ab3
艰辛历程:熬了一晚上终于搞出来了能用的脚本
说明:此脚本根据网上的大仙们的脚本由本人精心烹制而成,如有雷同 绝非虚构
拿走不谢:
#Docker tls script
#!/bin/bash
#settings
SERVER="服务器ip记得写哇"
PASSWORD="pass123456"
COUNTRY="CN"
STATE="sichuang"
CITY="chengdu"
ORGANIZATION=""
ORGANIZATIONAL_UNIT="Dev"
EMAIL="123456789@qq.com"
###start###
echo "script start"
#gen ca.pem - aes256
openssl genrsa -aes256 -passout pass:$PASSWORD -out ca-key.pem 4096
openssl req -new -x509 -passin "pass:$PASSWORD" -days 365 -key ca-key.pem -sha256 -out ca.pem -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$SERVER/emailAddress=$EMAIL"
#gen server cert
openssl genrsa -out server-key.pem 4096
openssl req -subj "/CN=$SERVER" -sha256 -new -key server-key.pem -out server.csr
echo subjectAltName = IP:$SERVER,IP:0.0.0.0 >> extfile.cnf
echo extendedKeyUsage = serverAuth >> extfile.cnf
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" \-CAcreateserial -out server-cert.pem -extfile extfile.cnf
#gen client cert
openssl genrsa -out key.pem 4096
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
echo extendedKeyUsage = clientAuth >> extfile.cnf
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" \-CAcreateserial -out cert.pem -extfile extfile.cnf
#cert authorized
chmod -v 0400 ca-key.pem key.pem server-key.pem
chmod -v 0444 ca.pem server-cert.pem cert.pem
#del useless file
rm client.csr server.csr
echo "script done"
###end###
docker服务设置使用证书远程访问
以下操作在docker服务器中进行
- 创建/进入你要存放证书的目录,复制上面的脚本到你服务器中的test.sh,运行脚本文件 生成证书
- docker设置使用证书远程访问 修改docker配置文件
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd
--tlsverify
--tlscacert=/etc/docker/cert/ca.pem
--tlscert=/etc/docker/cert/server-cert.pem
--tlskey=/etc/docker/cert/server-key.pem
-H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock
-
重启docker服务
systemctl restart docker
-
服务器测试使用证书获取docker数据
curl xxx.xxx.xxx.xxx:2375/info --cert /opt/cert/docker/cert.pem
--key /opt/cert/docker/key.pem
--cacert /opt/cert/docker/ca.pem
如下图,说明证书访问了
***************************************分 割 线********************************************
idea: docker插件证书链接docker
- 下载下图中的三个证书文件到本地,怎么下我不会告诉你的
- idea 设置证书访问及目录: file -> settings
*************************************这就完了哇*******************************************
感谢大仙:blog.csdn.net/oceanyang52…
还有一个大仙找不到了