首页 > 其他分享 >配置harbor服务器的https

配置harbor服务器的https

时间:2023-04-26 16:34:21浏览次数:43  
标签:harbor com xiaosun certs https 服务器 docker root

一、配置CA证书

(1)创建工作目录

[root@docker ~]# mkdir -pv /project1/harbor/certs/{ca,harbor-server,docker-client}

(2)进入到harbor证书存放目录

[root@docker ~]# cd /project1/harbor/certs/
[root@docker certs]# ll
total 0
drwxr-xr-x 2 root root 6 Feb 27 09:06 ca
drwxr-xr-x 2 root root 6 Feb 27 09:06 docker-client
drwxr-xr-x 2 root root 6 Feb 27 09:06 harbor-server

(3)生成自建CA证书
3.1 创建CA的私钥

[root@docker certs]# openssl genrsa -out ca/ca.key 4096

​ 3.2 基于自建的CA私钥创建CA证书(注意,证书签发的域名范围)

[root@docker certs]# openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=xiaosun.com" \
 -key ca/ca.key \
 -out ca/ca.crt

​ 3.3 查看自建证书信息

[root@docker certs]# openssl  x509 -in ca/ca.crt -noout -text

二、配置harbor证书

(1)生成harbor服务器的私钥

[root@docker certs]# openssl genrsa -out harbor-server/harbor.xiaosun.com.key 4096

(2)harbor服务器基于私钥签发证书认证请求(csr文件),让自建CA认证

[root@docker certs]# openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.xiaosun.com" \
    -key harbor-server/harbor.xiaosun.com.key \
    -out harbor-server/harbor.xiaosun.com.csr

(3)生成 x509 v3 的扩展文件用于认证

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

[alt_names]
DNS.1=harbor.xiaosun.com
DNS.2=xiaosun.com
EOF

(4)基于 x509 v3 的扩展文件认证签发harbor server证书

[root@docker certs]# openssl x509 -req -sha512 -days 3650 \
    -extfile harbor-server/v3.ext \
    -CA ca/ca.crt -CAkey ca/ca.key -CAcreateserial \
    -in harbor-server/harbor.xiaosun.com.csr \
    -out harbor-server/harbor.xiaosun.com.crt

(5)修改harbor的配置文件使用自建证书

[root@docker certs]# pwd
/project1/harbor/certs
[root@docker certs]# 
[root@docker certs]# cd ..
[root@docker harbor]# 
[root@docker harbor]# vim harbor.yml 
...
hostname: harbor.xiaosun.com
https:
  ...
  certificate: /project1/harbor/certs/harbor-server/harbor.xiaosun.com.crt
  private_key: /project1/harbor/certs/harbor-server/harbor.xiaosun.com.key
...
[root@docker harbor]# 
[root@docker harbor]# ./prepare
[root@docker harbor]#
[root@docker harbor]# docker-compose down -t 1
[root@docker harbor]#
[root@docker harbor]# docker-compose up -d

这里一定要执行 ./prepare 否则后面连接不上

三、配置docker客户端证书

(1)生成docker客户端证书

[root@docker certs]# openssl x509 -inform PEM -in harbor-server/harbor.xiaosun.com.crt -out docker-client/harbor.xiaosun.com.cert
[root@docker certs]# pwd
/project1/harbor/certs
[root@docker certs]# 
[root@docker certs]# md5sum docker-client/harbor.xiaosun.com.cert harbor-server/harbor.xiaosun.com.crt 
f3d34a5c5d88a5fcacd8435ca9f4d944  docker-client/harbor.xiaosun.com.cert
f3d34a5c5d88a5fcacd8435ca9f4d944  harbor-server/harbor.xiaosun.com.crt

(2)拷贝docker client证书文件

[root@docker certs]# cp harbor-server/harbor.xiaosun.com.key docker-client/
[root@docker certs]# 
[root@docker certs]# cp ca/ca.crt docker-client/
[root@docker certs]# 
[root@docker certs]# ll -R
.:
total 0
drwxr-xr-x 2 root root  48 Feb 27 09:20 ca
drwxr-xr-x 2 root root  85 Feb 27 09:33 docker-client
drwxr-xr-x 2 root root 116 Feb 27 09:20 harbor-server

./ca:
total 12
-rw-r--r-- 1 root root 2033 Feb 27 09:11 ca.crt
-rw-r--r-- 1 root root 3243 Feb 27 09:09 ca.key
-rw-r--r-- 1 root root   17 Feb 27 09:20 ca.srl

./docker-client:
total 12
-rw-r--r-- 1 root root 2033 Feb 27 09:33 ca.crt
-rw-r--r-- 1 root root 2086 Feb 27 09:30 harbor.xiaosun.com.cert
-rw-r--r-- 1 root root 3243 Feb 27 09:33 harbor.xiaosun.com.key

./harbor-server:
total 16
-rw-r--r-- 1 root root 2086 Feb 27 09:20 harbor.xiaosun.com.crt
-rw-r--r-- 1 root root 1716 Feb 27 09:15 harbor.xiaosun.com.csr
-rw-r--r-- 1 root root 3243 Feb 27 09:13 harbor.xiaosun.com.key
-rw-r--r-- 1 root root  239 Feb 27 09:19 v3.ext
[root@docker certs]# 

四、docker客户端使用证书

(1)docker客户端创建自建证书的目录结构(注意域名的名称和目录要一致哟~)

[root@docker ~]# mkdir -pv /etc/docker/certs.d/harbor.xiaosun.com/

(2)将客户端证书文件进行拷贝

[root@docker harbor]# scp certs/docker-client/* 10.0.0.104:/etc/docker/certs.d/harbor.xiaosun.com/
[email protected]'s password: 
ca.crt                                                                                               100% 2033     1.3MB/s   00:00    
harbor.xiaosun.com.cert                                                                            100% 2086     2.5MB/s   00:00    
harbor.xiaosun.com.key                                                                             100% 3243     3.4MB/s   00:00    
[root@docker harbor]# 

(3)docker客户端验证

[root@docker ~]# echo 10.0.0.101 harbor.xiaosun.com >> /etc/hosts
[root@docker ~]#
[root@docker ~]# docker pull harbor.xiaosun.com/oldboyedu-linux/yinzhengjie-games:v1.0
v1.0: Pulling from oldboyedu-linux/yinzhengjie-games
Digest: sha256:c3cc27ec756237c4c7c894ea452cf14f92a33b75e692927c0497f008e6510a43
Status: Downloaded newer image for harbor.xiaosun.com/oldboyedu-linux/yinzhengjie-games:v1.0
harbor.xiaosun.com/oldboyedu-linux/yinzhengjie-games:v1.0
[root@docker ~]# 
[root@docker ~]# 
[root@docker ~]# 
[root@docker ~]# docker login -u admin -p 1 harbor.xiaosun.com
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
[root@docker ~]# 

报错提示:

[root@docker ~]# docker login -u admin -p 1 harbor.xiaosun.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://harbor.xiaosun.com/v2/": x509: certificate is valid for harbor.xiaosun.com, not harbor.xiaosun.com

问题分析:

没有拷贝自建证书信息到docker 客户端指定目录。

解决方案:

1. 创建证书存放目录
[root@docker ~]# mkdir -pv /etc/docker/certs.d/harbor.xiaosun.com/
mkdir: created directory ‘/etc/docker/certs.d’
mkdir: created directory ‘/etc/docker/certs.d/harbor.xiaosun.com/’
[root@docker ~]# 

​ 2.将服务端证书拷贝过来

[root@docker ~]# scp 10.0.0.101:/project1/harbor/certs/docker-client/* /etc/docker/certs.d/harbor.xiaosun.com/
[email protected]'s password: 
ca.crt                                                                                      100% 2033     2.2MB/s   00:00    
harbor.xiaosun.com.cert                                                                   100% 2086     1.5MB/s   00:00    
harbor.xiaosun.com.key                                                                    100% 3243     2.9MB/s   00:00    
[root@docker ~]# 
[root@docker ~]# 
[root@docker ~]# ll /etc/docker/certs.d/harbor.xiaosun.com/
total 12
-rw-r--r-- 1 root root 2033 Feb 27 09:42 ca.crt
-rw-r--r-- 1 root root 2086 Feb 27 09:42 harbor.xiaosun.com.cert
-rw-r--r-- 1 root root 3243 Feb 27 09:42 harbor.xiaosun.com.key
[root@docker ~]# 
[root@docker ~]# docker login -u admin -p 1 harbor.xiaosun.com
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

标签:harbor,com,xiaosun,certs,https,服务器,docker,root
From: https://www.cnblogs.com/scfssq/p/17356503.html

相关文章

  • Ubantu服务器创建多个用户,多个用户互不干扰
    参考:Ubuntu服务器创建多个用户,多个用户互不干扰1.添加用户sudoaddusercz2.为用户赋权,这里赋予超级管理员(sudo)权限sudovim/etc/sudoers/etc/sudoers中找到rootALL=(ALL)ALL,rootALL=(ALL)ALL在后面添加新的一行czALL=(ALL)ALL,使用:wq!保存并退出。这样就为用户cz......
  • SqlServer创建链接服务器sp_addlinkedserver
    跨数据库访问数据需要创建链接服务器1、创建链接服务器/*创建链接服务器*/EXECsp_addlinkedserver@server='LINKTEST',@srvproduct='',@provider='SQLOLEDB',@datasrc='IP\服务器名称'--IP或服务器名称/*@server:自定义链接的名称@srvproduct:若链接的是SQL......
  • mysql单服务器配置多实例运行
    mysql版本5.7在my.cnf配置文件中增加下面的配置信息:[mysqld_multi]#mysqld=/usr/local/mysql/bin/mysqld_safemysqladmin=/usr/local/mysql/bin/mysqladminuser=rootpassword=123456[mysqld3307]server-id=3307port=3307log-bin=mysql-binlog-error=/Users/......
  • 服务器断电后启动失败报错:Generating /run/initramfs/rdsosreport.txt
    一、现象服务器断电,然后启动时发现起不来,连接显示器发现报错,如下所示: 原因:一般是服务器突然断电导致文件损坏所致,只要修复回去就好二、解决过程2.1寻找/dev/*-root文件说明: /dev/mapper目录下一般有三个文件,其中 centos-root是我们需要修复的。有些服务器的文件名称......
  • 如何解决服务启动错误1053:服务器没有及时回应启动或控制请求?
    1、有没有可能是权限问题  兼容模式win7,管理员身份启动,程序属性安全里添加NETWORKSERVICE对象,给编辑控制权限。 再一个是否服务处理数据的时间是不是太长了如果能解决,后面不看了2、如果没解决试这个https://jingyan.baidu.com/article/95c9d20df1186dad4e7561b3.html......
  • 如何查看Linux服务器网络配置信息
    Linux查看网络配置的方法如下:使用ifconfig命令查看网络接口的配置信息:ifconfig输出的信息包括当前主机的网络接口、IP地址、子网掩码、MAC地址等。使用ip命令查看网络接口、路由、网络地址转换等信息:ipaddrshow#显示网络接口信息iprouteshow#显示路由表......
  • 服务器上搭建git仓库
    服务器上搭建git仓库Liunx系统专栏收录该内容订阅专栏目录一、git安装和配置1、git安装2、git配置二、git仓库初始化1、创建仓库目录2、初始化git仓库三、git仓库的使用1、本地项目上传至服务器git仓库2、服务器git仓库拉取到本地3、第三方集成开发软件中如何实现......
  • containerd配置harbor私有仓库
    containerd不能像docker一样dockerloginharbor.example.com登录到镜像仓库,无法从harbor拉取到镜像,需要在每个node节点进行如下配置:可以通过更改containerd的config.toml文件添加仓库地址, /etc/containerd/config.toml,如果此文件不存在,可以通过命令生成配置文件containerdco......
  • 大模型带来算力巨量需求,有望引爆AI服务器市场
    随着数字化转型需求增长,AI在企业中的应用也越来越多,AI开发门槛高、应用场景复杂多样、对场景标注数据依赖等问题成为AI规模化落地的挑战,而预训练大模型的出现则为人工智能带来了新的机遇与希望。大模型作为政府和企业推进人工智能产业发展的重要抓手,在识别、理解、决策、生成等AI任......
  • Rust编程语言入门之最后的项目:多线程 Web 服务器
    最后的项目:多线程Web服务器构建多线程Web服务器在socket上监听TCP连接解析少量的HTTP请求创建一个合适的HTTP响应使用线程池改进服务器的吞吐量优雅的停机和清理注意:并不是最佳实践创建项目~/rust➜cargonewhelloCreatedbinary(application)`......