应用背景

在企业应用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证书镜像仓库吗?的更多相关文章

  1. spring boot / cloud (五) 自签SSL证书以及HTTPS

    spring boot / cloud (五) 自签SSL证书以及HTTPS 前言 什么是HTTPS? HTTPS(全称:Hyper Text Transfer Protocol over Secur ...

  2. 使用自签SSL证书有什么风险?

    http://mt.sohu.com/20150602/n414267586.shtml 所谓自签SSL证书,是指不受信任的任意机构或个人,使用工具自己签发的SSL证书.自签名SSL证书可以随意签发, ...

  3. docker登录没有配置https的harbor镜像仓库

    已经搭建harbor 仓库 ,域名  172.16.1.99 出现问题: 客户端尝试登录 仓库 [root@localhost docker]# docker login 172.16.1.99:80 ...

  4. 8天入门docker系列 —— 第六天 搭建自己的私有镜像仓库Registry

    这一篇我们来聊聊私有仓库的搭建,其实不管你是通过docker build还是compose的方式进行构建,最终还是要将生成好的镜像push到远程的仓库中,这样多个 平台可以方便的获取你registry ...

  5. kubernetes实战篇之windows添加自签ca证书信任

    系列目录 由于服务端设置了https访问,因此如果通过浏览器访问时会提示证书不被信任,但是仍然可以通过处理继续访问.但是在自动化环境中,都是通过命令来请求的,这样不受信任的https就会报错误,这样我 ...

  6. 在Docker上部署自动更新ssl证书的nginx + .NET CORE

    突发奇想要搞一个ssl的服务器,然后我就打起了docker的主意,想着能不能搞一个基于Docker的服务器,这样维护起来也方便一点. 设想 想法是满足这么几点: .NET CORE on Docker ...

  7. 给网站添加免费Https SSL证书

    基于阿里云的云盾证书服务,系统是centos6.8,web服务器是nginx1.8.0,简单记录下踩坑情况. 申请证书 登录阿里云控制台→安全(云盾)→证书服务→购买证书(https://common ...

  8. 自签SSL证书

    0.介绍 自己开发的使用了SSL协议的软件,通常没必要从证书签发机构那里来获取证书,自签证书成了必要的选择.自签证书还可以用来实现客户端登录认证. 1.创建CA 创建CA的私钥 openssl gen ...

  9. 部署asp.net core Kestrel 支持https 使用openssl自签ssl证书

    通过openssl生成证书 openssl req -newkey rsa:2048 -nodes -keyout my.key -x509 -days 365 -out my.cer openssl ...

  10. 十大免费SSL证书:网站免费添加HTTPS加密

    SSL证书,用于加密HTTP协议,也就是HTTPS.随着淘宝.百度等网站纷纷实现全站Https加密访问,搜索引擎对于Https更加友好,加上互联网上越来越多的人重视隐私安全,站长们给网站添加SSL证书 ...

随机推荐

  1. 2022-07-31:给出一个有n个点,m条有向边的图, 你可以施展魔法,把有向边,变成无向边, 比如A到B的有向边,权重为7。施展魔法之后,A和B通过该边到达彼此的代价都是7。 求,允许施展一次魔法

    2022-07-31:给出一个有n个点,m条有向边的图, 你可以施展魔法,把有向边,变成无向边, 比如A到B的有向边,权重为7.施展魔法之后,A和B通过该边到达彼此的代价都是7. 求,允许施展一次魔法 ...

  2. Windows server 2012 r2 激活方法

    slmgr /ipk W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9 slmgr /skms kms.03k.org slmgr /ato

  3. 【HDU】1559 最大子矩阵 (二维前缀和,动态规划)

    动态规划之二维前缀和 题目 给你一个m×n的整数矩阵,在上面找一个x×y的子矩阵,使子矩阵中所有元素的和最大. 输入 输入数据的第一行为一个正整数T,表示有T组测试数据.每一组测试数据的第一行为四个正 ...

  4. linux ssh远程登录

    目录 一.ssh概念 二.配置文件 三.ssh组成结构 四.远程控制过程 五.远程复制 六.配置密钥 七.wraooers防火墙 一.ssh概念 ssh:一种安全通道协议 功能:1.实现字符界面远程登 ...

  5. 与世界分享我刚编的mysql http隧道工具-hersql原理与使用

    原文地址:https://blog.fanscore.cn/a/53/ 1. 前言 本文是与世界分享我刚编的转发ntunnel_mysql.php的工具的后续,之前的实现有些拉胯,这次重构了下.需求背 ...

  6. 【Python】如何在FastAPI中使用UUID标记日志,以跟踪一个请求的完整生命周期

    为什么要使用uuid标记日志? 在分布式系统中,一个请求可能会经过多个服务,每个服务都会生成自己的日志.如果我们只使用普通的日志记录,那么很难将这些日志串联在一起,以至难以跟踪一个请求的完整生命周期. ...

  7. 二维数组初始化vector, 以及类型转换问题

    //二维数组的初始化1 vector<vector<float>> _box_parm(class_row_num, vector<float>(class_col ...

  8. midjourney国内版上线! 快来体验一下midjourney的强大功能

    最近大火的midjourney国内版上线了!该网站对接了midjourneyAPI,以文生图.以图生图功能都支持,下面我们来体验一下它的功能. 网址:https://www.weijiwangluo. ...

  9. 逍遥自在学C语言 | 指针函数与函数指针

    前言 在C语言中,指针函数和函数指针是强大且常用的工具.它们允许我们以更灵活的方式处理函数和数据,进而扩展程序的功能. 本文将介绍指针函数和函数指针的概念,并讲解一些常见的应用示例. 一.人物简介 第 ...

  10. 深入了解ApacheZeppelin:如何构建高效的数据科学平台

    目录 引言 随着数据科学和人工智能的快速发展,如何构建高效的数据科学平台已经成为一个重要议题.Apache Zeppelin是一个开源的数据科学平台,其提供了一种简单.高效的方式来处理和存储数据,并且 ...