当前位置: 首页 > ai >正文

docker- Harbor 配置 HTTPS 协议的私有镜像仓库

       Harbor通过配置 HTTPS 协议,可以确保镜像传输的安全性,防止数据被窃取或篡改。本文将详细介绍如何基于 Harbor 配置 HTTPS 协议的私有镜像仓库。

1.生成自建ca证书

[root@docker01 ~]# mkdir -p /liux/softwares/harbor/certs/custom/{ca,server,client}
[root@docker01 ~]# cd /liux/softwares/harbor/certs/custom
#生成CA的私钥
[root@docker01 custom]# openssl genrsa -out ca/ca.key 4096
Generating RSA private key, 4096 bit long modulus
.........................................................++
e is 65537 (0x10001)
[root@docker01 custom]# ll ca/
total 4
-rw-r--r-- 1 root root 3243 May 19 09:27 ca.key#生成ca的自签名证书 域名liux.com
[root@docker01 custom]# openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=liux.com" \
-key ca/ca.key \
-out ca/ca.crt
[root@docker01 custom]# ll ca/
total 8
-rw-r--r-- 1 root root 2017 May 19 09:40 ca.crt
-rw-r--r-- 1 root root 3243 May 19 09:27 ca.key

2.生成harbor主机证书

#1. 生成harbor主机私钥
[root@docker01 custom]# openssl genrsa -out server/harbor.liux.com.key 4096
Generating RSA private key, 4096 bit long modulus
.......................................................................................++
....++
e is 65537 (0x10001)
[root@docker01 custom]# ll server/
total 4
-rw-r--r-- 1 root root 3247 May 19 09:43 harbor.liux.com.key
#2. 生成harbor主机的证书申请
[root@docker01 custom]# openssl req -sha512 -new \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.liux.com" \-key server/harbor.liux.com.key \-out server/harbor.liux.com.csr
[root@docker01 custom]# ll server/
total 8
-rw-r--r-- 1 root root 1708 May 19 09:45 harbor.liux.com.csr
-rw-r--r-- 1 root root 3247 May 19 09:43 harbor.liux.com.key#3. 生成x509 v3扩展文件
[root@docker01 custom]# cat > server/v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=liux.com
DNS.2=liux
DNS.3=harbor.liux.com
EOF
#4. 使用"v3.ext"给harbor主机签发证书
[root@docker01 custom]# openssl x509 -req -sha512 -days 3650 \-extfile server/v3.ext \-CA ca/ca.crt -CAkey ca/ca.key -CAcreateserial \-in server/harbor.liux.com.csr \-out server/harbor.liux.com.crt
#5. 将crt文件转换为cert客户端证书文件
[root@docker01 custom]# openssl x509 -inform PEM -in server/harbor.liux.com.crt -out server/harbor.liux.com.cert
[root@docker01 custom]# ll server/
total 20
-rw-r--r-- 1 root root 2086 May 19 09:49 harbor.liux.com.cert
-rw-r--r-- 1 root root 2086 May 19 09:48 harbor.liux.com.crt
-rw-r--r-- 1 root root 1708 May 19 09:45 harbor.liux.com.csr
-rw-r--r-- 1 root root 3247 May 19 09:43 harbor.liux.com.key
-rw-r--r-- 1 root root 259 May 19 09:47 v3.ext

       注:docker程序认为"*.crt"文件是CA证书文件,"*.cert"客户端证书文件,于是上面第五步需要转换一下,其实使用cp一下也是可以的,内容并没有变化。

3.使用生成的证书在服务端配置https

#修改harbor的配置文件 
[root@docker01 harbor]# vim /liux/softwares/harbor/harbor.yml 
...
hostname: harbor.liux.com
...
https:...port: 443certificate: /liux/softwares/harbor/certs/custom/server/harbor.liux.com.crtprivate_key: /liux/softwares/harbor/certs/custom/server/harbor.liux.com.key
...
#重新安装harbor服务
[root@docker01 ]# cd /liux/softwares/harbor && ./install.sh
#或者prepare.sh搭配docker-compose down和docker-compose up -d
[root@docker01 ]# cd /liux/softwares/harbor && ./prepare.sh

4.docker配置信任证书以及测试

[root@docker01 harbor]# cat /etc/docker/daemon.json {..."data-root": "/liux/data/docker","insecure-registries": ["harbor.liux.com"]
}
[root@docker01 harbor]# systemctl restart docker
#启动harbor
[root@docker01 harbor]# docker-compose up -d
#登录验证
[root@docker01 harbor]# docker login https://harbor.liux.com -uadmin -pHarbor12345
...
Login Succeeded

5.浏览器访问

       通过浏览器访问需要配置hosts,路径C:\Windows\System32\drivers\etc/hosts 

       192.168.91.52 harbor.liux.com

        https://harbor.liux.com/

图片

6.客户端配置证书

       将客户端证书拷贝到需要登录harbor服务器的节点上,然后配置docker信任,登录harbor

#推荐配置客户端、服务端、ca,便于后期维护,将证书拷贝到客户端文件夹
[root@docker01 custom]# cp ca/ca.crt server/harbor.liux.com.cert server/harbor.liux.com.key client/
[root@docker01 custom]# ll -R
.:
total 0
drwxr-xr-x 2 root root 48 May 19 10:04 ca
drwxr-xr-x 2 root root 75 May 19 10:43 client
drwxr-xr-x 2 root root 129 May 19 10:04 server./ca:
total 12
-rw-r--r-- 1 root root 2017 May 19 10:04 ca.crt
-rw-r--r-- 1 root root 3243 May 19 10:04 ca.key
-rw-r--r-- 1 root root 17 May 19 10:04 ca.srl./client:
total 12
-rw-r--r-- 1 root root 2017 May 19 10:43 ca.crt
-rw-r--r-- 1 root root 2086 May 19 10:43 harbor.liux.com.cert
-rw-r--r-- 1 root root 3243 May 19 10:43 harbor.liux.com.key./server:
total 20
-rw-r--r-- 1 root root 2086 May 19 10:04 harbor.liux.com.cert
-rw-r--r-- 1 root root 2086 May 19 10:04 harbor.liux.com.crt
-rw-r--r-- 1 root root 1708 May 19 10:04 harbor.liux.com.csr
-rw-r--r-- 1 root root 3243 May 19 10:04 harbor.liux.com.key
-rw-r--r-- 1 root root 259 May 19 10:04 v3.ext#将客户端证书拷贝到需要登录harbor的服务器
[root@docker02 ~]# mkdir -pv /etc/docker/certs.d/harbor.liux.com
mkdir: created directory ‘/etc/docker/certs.d’
mkdir: created directory ‘/etc/docker/certs.d/harbor.liux.com’
#拷贝证书文件
[root@docker01 custom]# scp client/* 192.168.91.51:/etc/docker/certs.d/harbor.liux.com/
#docker添加证书地址,自建证书不受信任需要添加
[root@docker02 custom]# cat /etc/docker/daemon.json 
{...
"insecure-registries": ["harbor.liux.com"]}
#重启docker
[root@docker02 harbor]# systemctl restart docker
#重启harbor
[root@docker02 harbor]# docker-compose up -d
#登录harbor
[root@docker02 harbor]# docker login https://harbor.liux.com -uadmin -pHarbor12345
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded

       搞定 Harbor HTTPS 证书配置!下一期,我们将解锁 Harbor 高可用环境搭建,让你的镜像仓库稳如泰山!不见不散哦~

http://www.xdnf.cn/news/7459.html

相关文章:

  • Rofin PowerLine E Air维护和集成手侧激光Maintenance and Integration Manual
  • 能管理MySQL、Oracle、达梦数据库的桌面管理软件开源了
  • 使用 Java 开发 Android 应用:Kotlin 与 Java 的混合编程
  • 科技赋能·长效治理|无忧树建筑修缮渗漏水长效治理交流会圆满举行!
  • 企业级 Go 多版本环境部署指南-Ubuntu CentOS Rocky全兼容实践20250520
  • C# Task 与 SynchronizationContext
  • 文件包含靶场实现
  • 【移动应用安全】Android系统安全与保护机制
  • WPF技巧-常用的Converter集合(更新ing)
  • Spring Boot-Swagger离线文档(插件方式)
  • 【Redis】跳表结构
  • LSTM语言模型验证代码
  • springboot框架 集成海康ISUP-SDK 并实现 协议透传给设备下发指令!
  • 【鸿蒙开发】安全
  • centos 9 Kickstart + Ansible自动化部署 —— 筑梦之路
  • 软考软件评测师——数据库系统应用
  • spark-shuffle 类型及其对比
  • 新兴技术与安全挑战
  • Android7 Input(八)App Input事件接收器InputEventReceiver
  • 接口自动化可视化展示
  • CQF预备知识:Python相关库 —— 什么是 NumPy?
  • Linux网络基础全面解析:从协议分层到局域网通信原理
  • 【原创】ubuntu22.04下载编译AOSP 15
  • 杰里7006d日志分析
  • React 第四十四节Router中 usefetcher的使用详解及注意事项
  • form-create-designer中$inject参数的数据结构及各项属性说明
  • 软考中级软件设计师——计算机网络 IP地址与子网掩码相关题型
  • Index-AniSora模型论文速读:基于人工反馈的动漫视频生成
  • 游戏引擎学习第299天:改进排序键 第二部分
  • 小白的进阶之路系列之二----人工智能从初步到精通pytorch中分类神经网络问题详解