docker 2375端口证书一剑生成及使用

671 阅读1分钟

本文基于: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…

 还有一个大仙找不到了