不重启Docker能添加自签SSL证书镜像仓库吗?
应用背景
在企业应用Docker规划初期配置非安全镜像仓库时,有时会遗漏一些仓库没配置,但此时应用程序已经在Docker平台上部署起来了,体量越大就越不会让人去直接重启Docker。
那么,不重启Docker能添加自签SSL证书镜像仓库吗?
可以,在文中会找到答案。
实现思路
实现思路来自Docker官网(https://docs.docker.com/registry/insecure/),大意是通过复制镜像仓库的自签证书到操作系统目录,或者到docker的配置目录中。这样就可实现不重启使用该仓库了。
这里有个问题是:“某些情况下,例如镜像仓库不是我们搭建的 或 拿不到证书,这时候怎么办?”
基于命令是可以拿得到的
实现方式
命令行
通过openssl输出X.509证书到docker证书目录中实现需求。
# 创建镜像仓库证书目录,xxx.com.cn需替换为镜像仓库域名,如端口非443则需要追加:port
mkdir -p /etc/docker/certs.d/xxx.com.cn
# 使用openssl获取镜像仓库的X.509证书,写入刚创建目录下文件中,如端口非443则需替换
echo -n | openssl s_client -connect xxx.com.cn:443 2>/dev/null | openssl x509 > /etc/docker/certs.d/xxx.com.cn/ca.crt
# 测试登录、拉取等操作
docker login xxx.com.cn
docker pull xxx.com.cn/somepath/nginx:latest
示例:
mkdir -p /etc/docker/certs.d/harbor.test.com.cn:5000
echo -n | openssl s_client -connect harbor.test.com.cn:5000 2>/dev/null | openssl x509 > /etc/docker/certs.d/harbor.test.com.cn:5000/ca.crt
docker login harbor.test.com.cn:5000
Shell脚本
cat > add-insecure-repo.sh <<EOF
#/bin/bash
if [ "\$1x" == "x" ]; then
echo "请输入镜像仓库地址";
exit;
fi
REPO=\$1
HAS443="false"
#包含:443需去除
if [[ "\$1" =~ ":443" ]]; then
REPO=\${1%:443*}
HAS443="true"
fi
#包含https://需去除
if [[ "\$REPO" =~ "https://" ]]; then
REPO=\${REPO#*https://}
fi
mkdir -p /etc/docker/certs.d/\$REPO
if [[ "\$HAS443" == "true" ]]; then
echo -n | openssl s_client -connect \$REPO:443 2>/dev/null | openssl x509 > /etc/docker/certs.d/\$REPO/ca.crt
else
echo -n | openssl s_client -connect \$REPO 2>/dev/null | openssl x509 > /etc/docker/certs.d/\$REPO/ca.crt
fi
EOF
# 执行示例
sh add-insecure-repo.sh harbor.test.com.cn:5000
写作不易,如果有用就点个赞再走呗!~
参考:
不重启Docker能添加自签SSL证书镜像仓库吗?的更多相关文章
- spring boot / cloud (五) 自签SSL证书以及HTTPS
spring boot / cloud (五) 自签SSL证书以及HTTPS 前言 什么是HTTPS? HTTPS(全称:Hyper Text Transfer Protocol over Secur ...
- 使用自签SSL证书有什么风险?
http://mt.sohu.com/20150602/n414267586.shtml 所谓自签SSL证书,是指不受信任的任意机构或个人,使用工具自己签发的SSL证书.自签名SSL证书可以随意签发, ...
- docker登录没有配置https的harbor镜像仓库
已经搭建harbor 仓库 ,域名 172.16.1.99 出现问题: 客户端尝试登录 仓库 [root@localhost docker]# docker login 172.16.1.99:80 ...
- 8天入门docker系列 —— 第六天 搭建自己的私有镜像仓库Registry
这一篇我们来聊聊私有仓库的搭建,其实不管你是通过docker build还是compose的方式进行构建,最终还是要将生成好的镜像push到远程的仓库中,这样多个 平台可以方便的获取你registry ...
- kubernetes实战篇之windows添加自签ca证书信任
系列目录 由于服务端设置了https访问,因此如果通过浏览器访问时会提示证书不被信任,但是仍然可以通过处理继续访问.但是在自动化环境中,都是通过命令来请求的,这样不受信任的https就会报错误,这样我 ...
- 在Docker上部署自动更新ssl证书的nginx + .NET CORE
突发奇想要搞一个ssl的服务器,然后我就打起了docker的主意,想着能不能搞一个基于Docker的服务器,这样维护起来也方便一点. 设想 想法是满足这么几点: .NET CORE on Docker ...
- 给网站添加免费Https SSL证书
基于阿里云的云盾证书服务,系统是centos6.8,web服务器是nginx1.8.0,简单记录下踩坑情况. 申请证书 登录阿里云控制台→安全(云盾)→证书服务→购买证书(https://common ...
- 自签SSL证书
0.介绍 自己开发的使用了SSL协议的软件,通常没必要从证书签发机构那里来获取证书,自签证书成了必要的选择.自签证书还可以用来实现客户端登录认证. 1.创建CA 创建CA的私钥 openssl gen ...
- 部署asp.net core Kestrel 支持https 使用openssl自签ssl证书
通过openssl生成证书 openssl req -newkey rsa:2048 -nodes -keyout my.key -x509 -days 365 -out my.cer openssl ...
- 十大免费SSL证书:网站免费添加HTTPS加密
SSL证书,用于加密HTTP协议,也就是HTTPS.随着淘宝.百度等网站纷纷实现全站Https加密访问,搜索引擎对于Https更加友好,加上互联网上越来越多的人重视隐私安全,站长们给网站添加SSL证书 ...
随机推荐
- 2022-07-25:xiu是用rust语言编写的流媒体服务器软件项目。k8s安装xiu,drone文件如何写?
2022-07-25:xiu是用rust语言编写的流媒体服务器软件项目.k8s安装xiu,drone文件如何写? 答案2022-07-25: 云原生环境不可能完全一样,只能做参考. 我采用的是dron ...
- 2021-05-08:给定两个非负数组x和hp,长度都是N,再给定一个正数range。x有序,x[i]表示i号怪兽在x轴上的位置;hp[i]表示i号怪兽的血量 。range表示法师如果站在x位置,用A
2021-05-08:给定两个非负数组x和hp,长度都是N,再给定一个正数range.x有序,x[i]表示i号怪兽在x轴上的位置:hp[i]表示i号怪兽的血量 .range表示法师如果站在x位置,用A ...
- 2021-08-10:给定一个正数数组arr,返回arr的子集不能累加出的最小正数。1)正常怎么做? 2)如果arr中肯定有1这个值,怎么做?
2021-08-10:给定一个正数数组arr,返回arr的子集不能累加出的最小正数.1)正常怎么做? 2)如果arr中肯定有1这个值,怎么做? 福大大 答案2021-08-10: 先排序,然后扩充ra ...
- Selenium - 元素操作(4) - alert弹窗处理
Selenium - 元素操作 alert弹窗 Alert弹出框由于不是html的页面元素,而是JavaScript的控件:所以不能右键检查,用传统的方法去操作. 例如这种弹窗: # 获取告警弹框的文 ...
- Error: Failed to download resource "python"
最近在mac 部署flutter开发环境遇到一些IOS开发工具安装的问题,为解决问题到处寻找答案,浪费了大量时间,故在此记录一下避免再次入坑 执行flutter doctor检测环境 开始安装缺失工具 ...
- Flutter调优--深入探究MediaQuery引起界面Rebuild的原因及解决办法
前言 我们可以通过MediaQuery.of(context)方法获取到一些设备和系统的相关信息,比如状态栏的高度.当前是否是黑暗模式等等,使用起来相当方便,但是也要注意可能引起的页面rebuild问 ...
- 00.Webstrom的基本入门设置
1.取消红框类自动打开项目 2.打开轮滚缩放代码 3.设置代码字体,这里选择的是Consolas 推荐免费字体:https://files.cnblogs.com/files/huadaxia/jet ...
- Go语言如何判断两个对象是否相等
1. 引言 在编程中,判断两个对象是否相等是一项常见的任务,同时判断对象是否相等在很多情况下都非常重要,例如: 单元测试:编写单元测试时,经常需要验证函数的输出是否符合预期,这涉及到比较对象是否相等. ...
- 文盘Rust -- tokio绑定cpu实践
tokio 是 rust 生态中流行的异步运行时框架.在实际生产中我们如果希望 tokio 应用程序与特定的 cpu core 绑定该怎么处理呢?这次我们来聊聊这个话题. 首先我们先写一段简单的多任务 ...
- uniapp主题切换功能的第一种实现方式(scss变量+vuex)
随着用户端体验的不断提升,很多应用在上线的时候都要求做不同的主题,最基本的就是白天与夜间主题. 就像b站app主题切换,像这样的 uniapp因为能轻松实现多端发布而得到很多开发者的青睐,但每个端的实 ...