Docker开启TLS和CA认证, 解决暴露2375端口引发的安全漏洞, 并使用idea连接并推送镜像
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连接并推送镜像相关推荐
- Docker开启TLS和CA认证
前言:Docker直接开启2375端口是不安全的,别人只要连上之后就可以任意操作,下面是开启Docker的TLS和CA认证方法,并使用Jenkins和Portainer连接. 一.生成证书 查看服务器 ...
- docker开放2375端口设置TLS和CA认证
最近使用idea的docker插件,这个插件我们可以使用tcp的方式连接,但是这种连接方式非常不安全,开放的2375端口非常容易给人入侵,然后整个docker被人控制,这是非常危险的,所以为了解决这个 ...
- Docker对外开放2375端口引发安全漏洞分析与解决方案
前言 最近因为自己的云服务器开放了Docker 2375端口,导致被注入蠕虫,一直在跑挖矿程序.所以大家一定要注意外网环境下不要轻易打开此端口,如果要对外开放此端口,可以参考下面的解决方案,下面就Do ...
- Docker推送镜像到自己的阿里云卡住,也不报错
Docker推送镜像到自己的阿里云容器,一直卡住.Pushing,也不报错,也不上传. be5668ce5ec1: Layer already exists 5f70bf18a086: Layer a ...
- Docker之使用maven插件【配置方式】构建并推送镜像到私有仓库
准备工作 操作系统版本 [root@node02 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) docker版本 [ ...
- Docker之使用maven插件【Dockerfile方式】构建并推送镜像到私有仓库
准备工作 操作系统版本 [root@node02 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) docker版本 [ ...
- docker推送镜像至阿里私有镜像仓库
docker推送镜像至阿里私有镜像仓库 一.注册阿里私有镜像仓库 二.将公共镜像推送至私有镜像仓库 1.首先拉取到mysql镜像 2.登录阿里云Docker Registry(这里的信息要更换成自己的 ...
- docker 推送镜像到私有地址
下面针对的都是docker官网的地址 先登录 docker login 输入docker ID ID不是你的注册邮箱,指的是你登录后显示的ID,然后输入密码 ....此时认为你已经登陆成功了 接着看下 ...
- Docker push命令推送镜像到远端仓库
这里以dockercloud.io仓库为例,首先在docker配置文件中配置远端仓库地址,传送门如下: Docker运维与实战(一)-Docker的前世今生 1.登录远端仓库 $ docker log ...
最新文章
- 【只需简单三个步骤】ACE系统前后端不分离情况下如何增加一个JSP嵌入页面
- java线程同步的五种方法
- Java Review - 并发编程_LinkedBlockingQueue原理源码剖析
- 两个各四只青蛙过河java_趣味算法——青蛙过河(JAVA)
- 【重磅直播预告】IDC提效分享
- Angular - angular2升级到angular8
- 前端 ---jQuery的补充
- CSS计数器(自定义列表)
- opengl实现三维动画简单代码_使用Python简单实现马赛克拼图!内附完整代码
- CUDA里面GRID, BLOCK 边界检测
- Mish:一个新的state of the art的激活函数,ReLU的继任者
- 6.S081 Lab 1: Xv6 and Unix utilities
- linux 怎样停定时任务,linux停用cron定时执行任务的方法
- PyTorch搭建ANN实现时间序列预测(风速预测)
- 基于yolov5的目标检测和单目测距
- 深度理解PHP执行流程
- 【苹果推群发iMessage推】软件安装它起首将消息发送到Apple Push服务器,而后Apple Push服务器将消息发送到装配了应用程序的手机
- 遥感影像的几何校正介绍
- 【HomeAssistant接入的设备实现天猫精灵】
- PCB布局布线中地的设计