harbor+trivy的安装使用——筑梦之路

119 篇文章 7 订阅
109 篇文章 3 订阅

环境依赖:

docker-ce

docker-compose

这些部分的安装这里就不再赘述

# 创建证书和私钥

mkdir /opt/harbor/ssl -p

# 生成CA证书私钥 ca.key

openssl genrsa -out ca.key 4096

# 根据上面生成的CA证书私钥,再来生成CA证书 ca.crt

openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com" \ -key ca.key \ -out ca.crt

设置 -subj 选项中的值来反映的组织,例如:省份、地市、域名等等信息。如果使用FQDN 【 「(Fully Qualified Domain Name)全限定域名:同时带有主机名和域名的名称。」】连接Harbor主机,则必须将其指定为通用名称(CN)属性,可以看到示例写的是yourdomain.com。

openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj "/C=CN/ST=Beijing/L=Beijing/O=harbortrivy/OU=harbortrivy/CN=harbortrivy.com" \ -key ca.key \ -out ca.crt  

# 根据ca.key密钥生成 ca.crt证书。

# 参数说明:
-new 指生成证书请求-x509 表示直接输出证书-key 指定私钥文件-days 指定证书过期时间为3650天-out 导出结束后证书文件-subj 输入证书拥有者信息


# 生成服务器证书

# 生成私钥 yourdomain.com.key

openssl genrsa -out harbortrivy.com.key 4096

# 生成证书签名请求(CSR)yourdomain.com.csr

openssl req -sha512 -new \    -subj "/C=CN/ST=Beijing/L=Beijing/O=harbortrivy/OU=harbortrivy/CN=harbortrivy.com" \    -key harbortrivy.com.key \    -out harbortrivy.com.csr


# 生成一个x509 v3扩展文件

cat > v3.ext << EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=yourdomain.com
DNS.2=yourdomain
DNS.3=hostname
EOF

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=harbortrivy.com
DNS.2=harbortrivy
EOF


#  使用该v3.ext文件为您的Harbor主机生成证书 yourdomain.com.crt

openssl x509 -req -sha512 -days 3650 \    -extfile v3.ext \    -CA ca.crt -CAkey ca.key -CAcreateserial \    -in yourdomain.com.csr \    -out yourdomain.com.crt

openssl x509 -req -sha512 -days 3650 \    -extfile v3.ext \    -CA ca.crt -CAkey ca.key -CAcreateserial \    -in harbortrivy.com.csr \    -out harbortrivy.com.crt


下载harbor离线包:

官方网站:https://github.com/goharbor/harbor/releases

版本2.3以上

tar -zxvf harbor-offline-installer-v2.5.3.tgz


# 拷贝配置模板修改
cp harbor.yml.tmpl harbor.yml

hostname: harbortrivy.com
certificate: /opt/harbor/ssl/harbortrivy.com.crt
private_key: /opt/harbor/ssl/harbortrivy.com.key
harbor_admin_password: harbortrivy

# 安装 指定trivy,notary等参数

./install.sh --with-notary --with-trivy --with-chartmuseum

安装成功后,https登录,admin/harbortrivy

# docker客户端配置

mkdir -p /etc/docker/certs.d/harbortrivy.com

将证书harbortrivy.com.crt 放到此目录

转换证书:

openssl x509 -inform PEM -in harbortrivy.com.crt -out harbortrivy.com.cert

cat /etc/hosts

192.168.47.131  harbortrivy.com

# 登陆

docker login --username=admin harbortrivy.com


# 测试

docker pull ghcr.io/christophetd/log4shell-vulnerable-app:latest

docker tag ghcr.io/christophetd/log4shell-vulnerable-app:latest harbortrivy.com/library/log4shell-vulnerable-app:latest

docker push harbortrivy.com/library/log4shell-vulnerable-app:latest

参考资料:

Harbor .v1.10.2 私有镜像仓库的自签CA证书、安装使用【超详细官方文档翻译说明】_11229407的技术博客_51CTO博客

Harbor配置自签名证书 —— 筑梦之路_筑梦之路的博客-CSDN博客_harbor 证书

对于docker安全漏洞扫描,这里主要介绍了Trivy和harbor进行集成使用,还有其他的漏扫工具,比如:

  • Docker Bench for Security: 一个由Docker官方开发的开源工具,用于评估Docker安全配置。
  • Aqua MicroScanner: 一款云端扫描工具,可以扫描Docker镜像中的漏洞

GitHub - anchore/grype: A vulnerability scanner for container images and filesystems

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
首先,你需要在 Jenkins 中创建一个新的构建任务。在任务配置中,你需要配置以下步骤: 1. 从 Gitee 仓库中拉取代码 2. 执行 Hyperf 项目的构建命令 3. 构建 Docker 镜像并上传至 Harbor 4. 在目标服务器上通过 Docker 运行镜像,启动 Hyperf 服务 以下是一个简单的 Jenkinsfile 示例: ``` pipeline { agent any stages { stage('Git Checkout') { steps { git 'https://gitee.com/yourusername/yourrepo.git' } } stage('Build') { steps { sh 'composer install' sh './bin/hyperf.php build' } } stage('Dockerize') { steps { sh 'docker build -t yourimage:latest .' withCredentials([usernamePassword(credentialsId: 'harbor-login', passwordVariable: 'HARBOR_PASSWORD', usernameVariable: 'HARBOR_USERNAME')]) { sh "docker login -u ${env.HARBOR_USERNAME} -p ${env.HARBOR_PASSWORD} harbor.yourdomain.com" } sh 'docker tag yourimage:latest harbor.yourdomain.com/yourproject/yourimage:latest' sh 'docker push harbor.yourdomain.com/yourproject/yourimage:latest' } } stage('Deploy') { steps { sh 'docker pull harbor.yourdomain.com/yourproject/yourimage:latest' sh 'docker stop yourcontainer || true' sh 'docker rm yourcontainer || true' sh 'docker run -d --name yourcontainer -p 80:80 harbor.yourdomain.com/yourproject/yourimage:latest' } } } } ``` 你需要根据自己的实际情况进行调整,并且需要在 Jenkins 中配置相关的参数和凭据信息。同时,你还需要在服务器上安装 Docker 和 Docker Compose,以便能够运行 Docker 镜像。 希望这能帮到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值