分类:笔记 日期:2023-11-09 作者:caocaofff 浏览:981
下载:https://github.com/docker/compose/releases,选择合适的版本进行下载,我使用的最新版
将 docker-compose-linux-x86_64 上传到服务器上,将其移动到/usr/local/bin/ 路径中,重命名为docker-compose,并且赋予其执行权限,命令如下:
mv docker-compose-Linux-x86_64 /usr/local/sbin/docker-compose
chmod +x /usr/local/sbin/docker-compose
验证:使用docker-compose -v
查看版本号,如果可以查看则表示安装成功
前提:安装了docker-compose
下载:进入https://github.com/goharbor/harbor/releases,选择tgz格式的文件进行下载
解压:tar -zxvf harbor-offline-installer-v2.2.4.tgz -C /usr/local/
配置:cd /usr/local/harbor/、cp harbor.yml.tmpl harbor.yml、vim harbor.yml,修改配置如下:
【hostname】 将域名修改为服务器的IP地址 【port】 默认端口为80,如果被占用需要修改为别的端口
【https、certificate、private_key】请看2.3章节,或者可以参考:https://goharbor.io/docs/2.2.0/install-config/configure-https/
【harbor_admin_password】 web页面上admin的密码
【database.password】 数据库密码
【data_volume】 设置数据存放目录,目录会自动创建,可修改
trivy: 下面的【skip_update: true】、【offline_scan: true】
检查是否已经安装openssl:
openssl version
第一步:生成私钥
进入/usr/local/harbor/目录,执行命令:
openssl genrsa -des3 -out server.key 2048
输入一个4位以上的密码,例如1234。
第二步:生成CSR(证书签名请求)
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=cf/OU=cf/CN=192.168.1.1"
subj参数说明如下:
/C= Country 国家
/ST= State or Province 省
/L= Location or City 城市
/O= Organization 组织或企业
/OU= Organization Unit 部门
/CN= Common Name 域名或IP
第三步:去除私钥中的密码
在第1步创建私钥的过程中,由于必须要指定一个密码。而这个密码会带来一个副作用,那就是在每次启动Web服务器时,都会要求输入密码,
这显然非常不方便。要删除私钥中的密码,操作如下:
openssl rsa -in server.key -out server.key
第四步:生成自签名SSL证书
-days 证书有效期-天
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
需要用到的证书文件为:server.crt 和 server.key
X.509证书包含三个文件:key,csr,crt。
key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息
备注:在密码学中,X.509是一个标准,规范了公开秘钥认证、证书吊销列表、授权凭证、凭证路径验证算法等。
准备配置文件(更新配置):./prepare
,执行完该命令会生成【common目录】和【docker-compose.yml文件】
安装:./install.sh --with-trivy
,安装成功后会自动启动服务
--with-chartmuseum --with-notary 均已废弃
docker-compose ps
使用该命令查看,所有容器都是running状态
登录:docker login 192.168.1.1
,然后输入账号密码,成功登录。
现在即可使用docker push推送命令将镜像推送到harbor中(先打tag)
现在假设你push了一个nginx镜像,此时你浏览器登录https://192.168.1.1,使用trivy扫描器扫描镜像,肯定会出现报错:
2021-04-19T07:37:36.182Z [31mERROR[0m The first run cannot skip
downloading DB 2021-04-19T07:37:36.182Z [31mFATAL[0m database error:
--skip-update cannot be specified on the first run : general response handler: unexpected status code: 500, expected: 200
因为你没有本地数据库,Trivy 的默认地址是/home/{当前用户}/.cache/trivy,数据库在其db目录,由于现在是使用了docker volumes,所以在/data/trivy-adapter/trivy新建db文件夹
mkdir /data/trivy-adapter/trivy/db
下载离线数据库文件,解压到db文件夹。
V1版本不要用,请直接下载下面的V2版本。
https://download.hummerrisk.com/offline-package/trivy/trivy-db/trivy-offline-v2-20231023.db.tar.gz
压缩包里面是metadata.json、trivy.db(新版本还分了db和java-db目录,需要将db目录的文件移出来)
给权限
chown 10000:10000 *
你现在再扫描,能正常扫描出漏洞了。
docker-compose down
rm -rf /usr/local/harbor
https://blog.csdn.net/ben_na_/article/details/121053722
https://blog.csdn.net/lookBackward/article/details/113572436
https://blog.csdn.net/weixin_38299404/article/details/116532027
https://github.com/HummerRisk/HummerRisk/issues/280
CC版权: 本篇博文采用《CC 协议》,转载必须注明作者和本文链接