Docker AC认证教程 解决暴露2375端口引发的安全漏洞

创建证书生成脚本 cert.sh, 放置/script目录

"提示" /mydata/cert/docker这个目录改了下面相关都得改 自己替换 mkdir -p /mydata/cert/script /mydata/cert/docker #cert文件目录
touch /mydata/cert/script/cert.sh   #创建脚本文件
vim /mydata/cert/script/cert.sh   #编辑脚本

加入脚本命令 修改文本里服务器ip 保存

#!/bin/bash
set -e
if [ -z $1 ];then
echo "服务器ip 示例192.168.1.1"
exit 0
fi
HOST=$1
mkdir -p /mydata/cert/docker
cd /mydata/cert/docker
openssl genrsa -aes256 -out ca-key.pem 4096
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
openssl genrsa -out server-key.pem 4096
openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr
# 配置白名单,推荐配置0.0.0.0,允许所有IP连接但只有证书才可以连接成功
echo subjectAltName = DNS:$HOST,IP:$HOST,IP:0.0.0.0,IP:127.0.0.1 > extfile.cnf
openssl x509 -req -days 365 -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 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 -CAcreateserial -out cert.pem -extfile extfile.cnf
rm -v client.csr server.csr
chmod -v 0400 ca-key.pem key.pem server-key.pem
chmod -v 0444 ca.pem server-cert.pem cert.pem

执行 cert.sh 脚本, 生成证书放置 /mydata/cert/docker 目录中

#示例 sh /mydata/cert/script/cert.sh 192.168.1.1
sh /mydata/cert/script/cert.sh +(服务器ip 和上面命令的一致)

按照提示输入相关信息,密码随便输入一致就行,其他信息可留空,等脚本指定完成之后

可在 /mydata/cert/docker 目录查看到生成的证书

配置Docker启用TLS

#编辑Docker配置
vim /usr/lib/systemd/system/docker.service
# 整段复制出来改动再黏贴到服务器  不允许 \ 换行  可能会导致Docker启动失败
#端口自己改一下 记得配置开放端口和防火墙
#/mydata/cert/docker  这个AC加密文件路径和上面创建一致 不一致自己调整
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/mydata/cert/docker/ca.pem --tlscert=/mydata/cert/docker/server-cert.pem --tlskey=/mydata/cert/docker/server-key.pem -H tcp://0.0.0.0:12345 -H unix:///var/run/docker.sock

更新并重启Docker

systemctl daemon-reload && systemctl restart docker

去这个目录/mydata/cert/docker 4个文件下载到本地

ca.pem
ca-key.pem
cert.pem
key.pem

idea插件连接 docker

连接Docker

Maven 连接 Docker 配置文件

            <!--docker镜像build插件--><plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.2.0</version><executions><!--如果想在项目打包时构建镜像添加--><execution><id>build-image</id><phase>package</phase><goals><goal>build</goal></goals></execution></executions><configuration><!-- 制作者提供本人信息 --><maintainer>508578631@qq.com</maintainer><!--配置jdk --><baseImage>openjdk:8</baseImage><!--配置启动内存 执行--><entryPoint>["java","-Xms256m","-Xmx256m","-jar","/${project.build.finalName}.jar"]</entryPoint><!-- 注意imageName一定要是符合正则[a-z0-9-_.]的,否则构建不会成功 --><imageName>aw/${project.artifactId}</imageName>
<!--                    自己编写的DockerFile 地址-->
<!--                    <dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>--><!--远程Docker的地址--><dockerHost>${docker.host}</dockerHost><!--tls证书--><dockerCertPath>D:\h-my\pem</dockerCertPath><rm>true</rm><resources><resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include></resource></resources></configuration></plugin>

打包推送到配置的docker

查看是否推送成功

启动容器


参考文章
本文站在众多前人基础上完善而成,主要参考了如下文章:
https://www.cnblogs.com/haoxianrui/p/14095306.html

❤️ 看完有所收获?希望爱学习的你不要吝啬三连击哟[点赞 + 收藏 + 评论]~

Docker开启TLS和CA认证, 解决暴露2375端口引发的安全漏洞, 并使用idea连接并推送镜像相关推荐

  1. Docker开启TLS和CA认证

    前言:Docker直接开启2375端口是不安全的,别人只要连上之后就可以任意操作,下面是开启Docker的TLS和CA认证方法,并使用Jenkins和Portainer连接. 一.生成证书 查看服务器 ...

  2. docker开放2375端口设置TLS和CA认证

    最近使用idea的docker插件,这个插件我们可以使用tcp的方式连接,但是这种连接方式非常不安全,开放的2375端口非常容易给人入侵,然后整个docker被人控制,这是非常危险的,所以为了解决这个 ...

  3. Docker对外开放2375端口引发安全漏洞分析与解决方案

    前言 最近因为自己的云服务器开放了Docker 2375端口,导致被注入蠕虫,一直在跑挖矿程序.所以大家一定要注意外网环境下不要轻易打开此端口,如果要对外开放此端口,可以参考下面的解决方案,下面就Do ...

  4. Docker推送镜像到自己的阿里云卡住,也不报错

    Docker推送镜像到自己的阿里云容器,一直卡住.Pushing,也不报错,也不上传. be5668ce5ec1: Layer already exists 5f70bf18a086: Layer a ...

  5. Docker之使用maven插件【配置方式】构建并推送镜像到私有仓库

    准备工作 操作系统版本 [root@node02 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) docker版本 [ ...

  6. Docker之使用maven插件【Dockerfile方式】构建并推送镜像到私有仓库

    准备工作 操作系统版本 [root@node02 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) docker版本 [ ...

  7. docker推送镜像至阿里私有镜像仓库

    docker推送镜像至阿里私有镜像仓库 一.注册阿里私有镜像仓库 二.将公共镜像推送至私有镜像仓库 1.首先拉取到mysql镜像 2.登录阿里云Docker Registry(这里的信息要更换成自己的 ...

  8. docker 推送镜像到私有地址

    下面针对的都是docker官网的地址 先登录 docker login 输入docker ID ID不是你的注册邮箱,指的是你登录后显示的ID,然后输入密码 ....此时认为你已经登陆成功了 接着看下 ...

  9. Docker push命令推送镜像到远端仓库

    这里以dockercloud.io仓库为例,首先在docker配置文件中配置远端仓库地址,传送门如下: Docker运维与实战(一)-Docker的前世今生 1.登录远端仓库 $ docker log ...

最新文章

  1. 【只需简单三个步骤】ACE系统前后端不分离情况下如何增加一个JSP嵌入页面
  2. java线程同步的五种方法
  3. Java Review - 并发编程_LinkedBlockingQueue原理源码剖析
  4. 两个各四只青蛙过河java_趣味算法——青蛙过河(JAVA)
  5. 【重磅直播预告】IDC提效分享
  6. Angular - angular2升级到angular8
  7. 前端 ---jQuery的补充
  8. CSS计数器(自定义列表)
  9. opengl实现三维动画简单代码_使用Python简单实现马赛克拼图!内附完整代码
  10. CUDA里面GRID, BLOCK 边界检测
  11. Mish:一个新的state of the art的激活函数,ReLU的继任者
  12. 6.S081 Lab 1: Xv6 and Unix utilities
  13. linux 怎样停定时任务,linux停用cron定时执行任务的方法
  14. PyTorch搭建ANN实现时间序列预测(风速预测)
  15. 基于yolov5的目标检测和单目测距
  16. 深度理解PHP执行流程
  17. 【苹果推群发iMessage推】软件安装它起首将消息发送到Apple Push服务器,而后Apple Push服务器将消息发送到装配了应用程序的手机
  18. 遥感影像的几何校正介绍
  19. 【HomeAssistant接入的设备实现天猫精灵】
  20. PCB布局布线中地的设计

热门文章

  1. 如何制作路演PPT?
  2. mac idea Tomcat 内网映射解决方案
  3. 23考研| 你来了,准硕士!!!
  4. css3动画让风车转起来
  5. c语言如何计算出迭代次数,计算方法——C语言实现——迭代法求解线性方程组...
  6. 你知道CAD中的样条曲线的绘制方法吗?
  7. 算法的时间复杂度 递推
  8. python绘制的Svg图打开一片空白
  9. 字体使用的侵权是如何判定的?
  10. 山也就只有这么高嘛。