架构师系统-Docker(六)-镜像仓库Harbor支持Https(扩展)

news/2024/9/23 10:48:20/

Harbor支持Https(扩展)

为了支持微服务推送我们需要将HarBor设置为https,可以让HarBor在任何地方使用以及推送

前面说了怎么搭建harbor仓库,这里讲一讲harbor实现https访问,因为只需要内网访问,没必要去申请一个ssl证书,所以我就用openssl颁发自签名证书,实现https访问。

生成证书颁发机构证书

在生产环境中,您应该从CA获得证书,在测试或开发环境中,您可以生成自己的CA,要生成CA证书,请运行以下命令

创建证书目录

mkdir -p /tmp/data/cert && cd /tmp/data/cert && ll
生成CA证书私钥
openssl genrsa -out ca.key 4096
生成CA证书
调整-subj选项中的值以反映您的组织,如果使用FQDN连接Harbor主机,则必须将其指定为通用名称(CN)属性openssl req -x509 -new -nodes -sha512 -days 3650 \-subj "/C=CN/ST=Beijing/L=Beijing/O=itcast/OU=Personal/CN=itcast.harbor.com" \-key ca.key \-out ca.crt
这里subj是主题的意思含义如下C=国家,S=省(市),L=区(县、市),O=组织机构,OU=组织单位,CN=通用名称

生成服务器证书

证书通常包含一个.crt文件和一个.key文件,例如yourdomain.com.crtyourdomain.com.key

生成私钥
openssl genrsa -out itcast.harbor.com.key 4096
生成证书签名请求(CSR)
调整-subj选项中的值以反映您的组织。如果使用FQDN连接Harbor主机,则必须将其指定为通用名称(CN)属性,并在密钥和CSR文件名中使用它openssl req -sha512 -new \-subj "/C=CN/ST=Beijing/L=Beijing/O=itcast/OU=Personal/CN=itcast.harbor.com" \-key itcast.harbor.com.key \-out itcast.harbor.com.csr
生成一个x509 v3扩展文件
无论您使用FQDN还是IP地址连接到Harbor主机,都必须创建此文件,以便可以为您的Harbor主机生成符合主题备用名称(SAN)和x509 v3的证书扩展要求,替换DNS条目以反映您的域。cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names[alt_names]
DNS.1=itcast.harbor.com
DNS.2=itcast.harbor
DNS.3=harbor
EOF
生产主机证书
使用该v3.ext文件为您的Harbor主机生成证书,注意将yourdomain.comCRS和CRT文件名中的替换为Harbor主机名。openssl x509 -req -sha512 -days 3650 \-extfile v3.ext \-CA ca.crt -CAkey ca.key -CAcreateserial \-in itcast.harbor.com.csr \-out itcast.harbor.com.crt

配置harbor.yml

然后进入harbor安装目录修改harbor.yml,修改下面几个选项

  • hostname,使用IP或域名,不要用回环地址,localhost等
  • certificate,yourdomain.com.crt的路径/tmp/data/cert/test.harbor.com.crt
  • private_key,yourdomainr.com.key的路径/tmp/data/cert/test.harbor.com.key 

重新安装harbor服务

停止harbor

停止运行中的服务

 docker-compose down
运行目录harbor下的prepare完成https的配置./prepare重新安装
在harbor目录下运行安装命令./install.sh修改Docker推送配置
我们需要将推送的IP改成域名vi /etc/docker/daemon.json
上文中我们对registry已经操作了,这里需要改用harbor,需要重新配置#因为默认端口号是80 所以不需要加端口号
{ "insecure-registries": ["仓库IP或域名"] }
完整的配置如下{"insecure-registries": ["test.harbor.com"],"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}执行以下命令重启重新加载配置并生效systemctl daemon-reload
service docker restart

修改本地host文件

为了让本机能够正常访问到harbor的web环境需要配置本地的hosts文件增加如下配置

192.168.64.153 test.harbor.com

windows环境下host路径在C:\Windows\System32\drivers\etc

域名访问harbor

通过域名访问harbor,域名就是我们刚才配置的testharbor.com域名访

https://img-blog.csdnimg.cn/direct/802b2a053c034dc4977b689761706b0b.png" alt="802b2a053c034dc4977b689761706b0b.png" /> 因为我们的证书是自签的,不是第三方认证的,素以有安全性提示,点击继续就可以访问

https://img-blog.csdnimg.cn/direct/225d98e891bf49c68e820623110c9ae1.png" alt="225d98e891bf49c68e820623110c9ae1.png" />

到这里登录后就可以访问了 

https://img-blog.csdnimg.cn/direct/e1f31ff23bc842709b7c4f3470c33821.png" alt="e1f31ff23bc842709b7c4f3470c33821.png" />

 

 


http://www.ppmy.cn/news/1439939.html

相关文章

SpringMVC中的文件上传和中英文名称文件下载

一、文件上传 前端&#xff1a; <% page language"java" contentType"text/html;charsetUTF-8"pageEncoding"UTF-8"%> <! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4…

C++ Primer Plus

第一章 初始C #include <iostream> //#:预处理int main(void) //void:无参数 {using namespace std;int carrots; //定义声明语句:开辟内存空间&#xff0c; int:整型 cout << "how many corrots do you have?" << endl; //cout:输出流(out) end…

C语言Linux vim shell命令

无论是在插入模式或者是其他模式下对于文件的修改都是对于内存缓冲区进行修改&#xff0c;只有当点击w进行保存以后才会将数据写入到一个新的文件中的&#xff0c;将源文件删除&#xff0c;并且新文件改为文件的名字 1. actionmotion dG删到文件尾 ggdG先到开头再删除到末尾…

微信小程序:12.页面导航

什么是页面导航 页面导航指的是页面之间的相互跳转。例如&#xff0c;浏览器中实现的页面导航的方式有两种&#xff1a; 连接location.href 小程序中实现页面导航的两种方式 声明式导航 在页面上声明一个导航组件 通过点击组件实现页面跳转 导航TabBar页面 是指配置TabB…

公钥密码学Public-Key Cryptography

公钥或非对称密码学的发展是整个密码学历史上最伟大的&#xff0c;也许是唯一真正的革命。The development of public-key, or asymmetric, cryptography is the greatest and perhaps the only true revolution in the entire history of cryptography. 公钥算法基于数学函数…

SpringBoot学习之Kafka发送消费消息入门实例(三十五)

使用Kafka之前需要先启动fKafka,如何下载安装启动kafka请先参考本篇文章的前两篇: 《SpringBoot学习之Kafka下载安装和启动【Windows版本】(三十四)》 《SpringBoot学习之Kafka下载安装和启动【Mac版本】(三十三)》 一、POM依赖 1、加入kafka依赖 2、我的整个POM代码…

【计算机毕业设计】基于SSM++jsp的校园快递代取系统【源码+lw+部署文档+讲解】

目录 1 绪论 1.1 研究背景 1.2 目的和意义 1.3 论文结构安排 2 相关技术 2.1 SSM框架介绍 2.2 B/S结构介绍 2.3 Mysql数据库介绍 3 系统分析 3.1 系统可行性分析 3.1.1 技术可行性分析 3.1.2 经济可行性分析 3.1.3 运行可行性分析 3.2 系统性能分析 3.2.1 易用性指标 3.2.2 可…

Git命令查询

Git拥有众多命令&#xff0c;以下是一份更全面的Git命令列表&#xff1a; 配置与初始化 git config: 配置 Git 工具。git init: 初始化一个新的 Git 仓库。git clone: 克隆一个仓库到本地。 基本操作 git add: 将文件添加到暂存区。git status: 查看工作区、暂存区和本地仓库的…