harbor镜像仓库-https访问配置

1. 证书的生成

在测试或开发环境中,您可以选择使用自签名证书,而不是来自受信任的第三方CA的证书。
以下内容将向您展示如何创建自己的CA,并使用您的CA签署服务器证书和客户端证书。

1.1 生成ca证书
[[email protected] ~]# mkdir /docker
[[email protected] ~]# cd /docker/
[[email protected] docker]# ll
总用量 0
[[email protected] docker]# openssl genrsa -out ca.key 4096
Generating RSA private key, 4096 bit long modulus
................................................................................................................++
......................................................................................................................................................................................................................................................................++
e is 65537 (0x10001)

### 这里CN填写你的https设置的域名,即你harbor配置文件中hostanme填写的内容

[[email protected] docker]# openssl req -x509 -new -nodes -sha512 -days 3650  -subj "/CN=192.168.1.109"  -key ca.key  -out ca.crt

[[email protected] docker]# ll
总用量 8
-rw-r--r-- 1 root root 1797 4月  18 11:16 ca.crt
-rw-r--r-- 1 root root 3247 4月  18 11:16 ca.key
1.2 获得服务器证书

1)创建自己的私钥:
openssl genrsa -out server.key 4096
2)生成证书签名请求:
openssl req -sha512 -new 
-subj "/CN=192.168.1.109" 
-key server.key 
-out server.csr

[[email protected] docker]# ll
总用量 16
-rw-r--r-- 1 root root 1797 4月  18 11:16 ca.crt
-rw-r--r-- 1 root root 3247 4月  18 11:16 ca.key
-rw-r--r-- 1 root root 1590 4月  18 11:22 server.csr
-rw-r--r-- 1 root root 3247 4月  18 11:21 server.key
1.3 生成harbor仓库主机的证书

1.3.1 修改v3.ext文件

无论您是使用类似yourdomain.com的 FQDN 还是IP来连接注册表主机,请运行此命令以生成符合主题备用名称(SAN)和x509 v3扩展要求的注册表主机证书:v3.ext

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=192.168.1.109
EOF
1.3.2 生成harbor仓库主机的证书
[[email protected] docker]# openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
Signature ok
subject=/CN=192.168.1.109
Getting CA Private Key
此时证书创建成功
[[email protected] docker]# ll
总用量 28
-rw-r--r-- 1 root root 1797 4月  18 11:16 ca.crt
-rw-r--r-- 1 root root 3247 4月  18 11:16 ca.key
-rw-r--r-- 1 root root 1834 4月  18 11:31 server.crt
-rw-r--r-- 1 root root 1590 4月  18 11:22 server.csr
-rw-r--r-- 1 root root 3247 4月  18 11:21 server.key
-rw-r--r-- 1 root root  233 4月  18 11:30 v3.ext
2 配置和安装

1)配置服务器证书和港口密钥
获取server.crt和server.key文件后,您可以将它们拷贝到目录/data/cert/:

2)修改harbor配置文件
编辑文件harbor.cfg,更新主机名和协议,并更新属性ssl_cert和ssl_cert_key:

hostname = yourdomain.com:port
ui_url_protocol = https
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key

3)重启harbor

为Harbor生成配置文件:
 ./prepare
如果Harbor已在运行,请停止并删除现有实例。您的图像数据保留在文件系统中
  docker-compose down -v
最后,重启harbor:
  docker-compose up -d

4)为客户端配置harbor认证
所有需要push或者pull镜像的机器都需要拷贝证书到docker.

a. 创建存放域名证书的目录
[[email protected] ~]# mkdir -p /etc/docker/certs.d/192.168.1.109
b. 移动证书到docker目录下
cp ca.crt  /etc/docker/certs.d/192.168.1.109/ca.crt
c. 测试推送拉取
[[email protected] harbor]# docker tag busybox:latest 192.168.1.109/software/busybox:002  ##打上仓库地址标签
[[email protected] harbor]# docker push 192.168.1.109/software/busybox:002                ##推送测试,
The push refers to repository [192.168.1.109/software/busybox]                              ##这里已经推送过了,提示存在
0b97b1c81a32: Layer already exists
002: digest: sha256:f79f7a10302c402c052973e3fa42be0344ae6453245669783a9e16da3d56d5b4 size: 527
[[email protected] harbor]# docker rmi -f af2f74c517aa                                    ##删除镜像
Untagged: 192.168.1.109/software/busybox:002
Untagged: 192.168.1.109/software/[email protected]:f79f7a10302c402c052973e3fa42be0344ae6453245669783a9e16da3d56d5b4
Untagged: busybox:latest
Untagged: [email protected]:954e1f01e80ce09d0887ff6ea10b13a812cb01932a0781d6b0cc23f743a874fd
Deleted: sha256:af2f74c517aac1d26793a6ed05ff45b299a037e1a9eefeae5eacda133e70a825
Deleted: sha256:0b97b1c81a3200e9eeb87f17a5d25a50791a16fa08fc41eb94ad15f26516ccea
[[email protected] harbor]# docker pull 192.168.1.109/software/busybox:002                ###拉取镜像测试
002: Pulling from software/busybox
fc1a6b909f82: Pull complete
Digest: sha256:f79f7a10302c402c052973e3fa42be0344ae6453245669783a9e16da3d56d5b4
Status: Downloaded newer image for 192.168.1.109/software/busybox:002

为Harbor设置HTTPS后,您可以通过以下步骤进行验证:
打开浏览器并输入地址:https://yourdomain.com。它应该显示Harbor的用户界面。
请注意,即使我们通过自签名CA签署证书并将CA部署到上述位置,某些浏览器仍可能出于安全原因显示有关证书颁发机构(CA)未知的警告。这是因为自签名CA本质上不是受信任的第三方CA. 您可以自己将CA导入浏览器以解决警告

实例配置:

将生成的ca.crt文件放置到 centos 7 客户端docker根目录下 , 重启docker 可登录镜像仓库

[[email protected] cargo.caicloudprivatetest.com]# pwd
/etc/docker/certs.d/cargo.caicloudprivatetest.com
[[email protected] cargo.caicloudprivatetest.com]# ls
ca.crt
[[email protected] cargo.caicloudprivatetest.com]# docker login cargo.cai******tetest.com -u admin -p Pw****56
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

 

原文地址:https://www.cnblogs.com/weifeng1463/p/11106462.html

时间: 2024-11-08 21:46:27

harbor镜像仓库-https访问配置的相关文章

Harbor镜像仓库部署

一.简介 Harbor是VMware中国研发团队开发并开源企业级Registry,对中文支持很友好. Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. Harbor具有如下特点: 1.基于角色的访问控制 - 用户与Docker镜像仓库通过"项目"进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限. 2.镜像复制 - 镜像可以在多个Registry实例中复制(同步).尤其适合于负载均衡,高可用,混合云和多云的场景. 3.

harbor镜像仓库原理和安装

原地址:harbor镜像仓库 目录 一:Harbor简介 1. docker registry的缺点: 2. Harbor优点 3. Harbor介绍 Harbor官方网站:http://vmware.github.io/harbor/ 二:Harbor主要组件 三:Harbor架构 1. Harbor登录过程 2. Docker push 的过程 四:harbor镜像仓库部署 1. 安装harbor环境 2. 安装harobr镜像仓库 五:Harbor使用 2. 创建镜像项目kubernete

搭建Vmware Harbor 镜像仓库

1.前置条件 : 需要有docker docker-compose 2.准备安装: mkdir /data mkdir /data/cert 上传server.crt server.key 证书文件到/data/cert下: LDAP服务器防火墙规则加入Harbor IP地址 3. 安装docker yum install docker 4.安装docker-compose curl -L https://github.com/docker/compose/releases/download/1

CentOS部署Harbor镜像仓库

关于Harbor Harbor是用于存储和分发Docker镜像的镜像仓库服务,相比Docker Registry,Harbor在安全.标识.管理等方面做了增强,更适合企业使用: 官方网站:https://goharbor.io/ 官方开源:https://github.com/goharbor/harbor 环境信息 今天要部署的Harbor版本是1.9.0,本次部署用的机器信息如下: 操作系统:CentOS Linux release 7.7.1908 Docker:19.03.2 docke

Harbor镜像仓库使用精简指南

一.使用管理员分配用户 使用管理员登录harbor控制台,进入"系统管理"--"用户管理",点击创建用户: 填写创建用户表单,即分配一个用户账号: 二.新建项目 使用刚才创建的testuser登录harbor控制台,点击右侧"新建项目" 填写项目名称,并设置项目镜像仓库是否支持公开访问(这里设置为公开 ): 创建完成后,可以看到所建的镜像项目的管理界面: 可以针对该项目,添加可以访问的成员,并赋予权限: 其中, 1)概要:显示项目的总体容量,镜像

Centos 7.x部署Harbor镜像仓库

一.环境准备 OS:CentOS Linux release 7.5.1804 (Core)?IP:172.16.8.46 安装要求如下: 二.docker安装 参考https://blog.csdn.net/xiegh2014/article/details/80454019 三.安装docker-compose curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -

apache的https访问配置

1.sudo a2enmod ssl 2生成自签名证书apache.pem sudo openssl req -x509 -newkey rsa:1024 -keyout apache.pem -out apache.pem -nodes -days 999 3. apache.pem拷贝至/etc/apache2/ssl/目录下 4.在工程配置文件里加入配置,如下: <VirtualHost *:8000> ... SSLEngine on SSLCertificateFile /etc/a

[svc]nginx集群https访问配置

实现用户访问maotai.com,直接重定向到https://www.maotai.com 1. maotai.com www.maotai.com 2. http://www.maotai.com https://www.maotai.com nginx-lb nginx-lb证书生成 用户--nginx(证书)--nginx--tomcat mkdir /data/;cd /data/ openssl req -x509 -days 3650 -nodes -newkey rsa:2048

Docker以https访问Harbor私有仓库(二)

1 说明 前文Centos7搭建Harbor私有仓库(二)中,我们以https方式搭建了Harbor,本篇我们主要配置Docker以https方式访问Harbor私有仓库 2 Docker配置 2.1 Mac系统 2.1.1 配置Docker Mac系统中只需配置Proferences -> Proxies使用System Proxy即可,如下: 2.1.2 登录私服验证 docker login registry.anxminise.cc #登录私服 2.2 Windows系统 待补充 2.3