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

搭设企业网站教程邳州网站开发

搭设企业网站教程,邳州网站开发,邯郸市疫情防控最新通知,网站建设制作设计营销公司四川经过验证 替换 Docker.io 的方式失败了, 以下的过程中还是需要设置 registry-mirrors 才行 以下是一篇详细教程,展示如何基于 openssl.conf 配置生成域名为 registry-1.docker.io 和 IP 地址为 172.16.20.20 的证书,构建 Harbor 服务。 环境准备 系统环境…

经过验证 替换 Docker.io 的方式失败了, 以下的过程中还是需要设置 registry-mirrors 才行

以下是一篇详细教程,展示如何基于 openssl.conf 配置生成域名为 registry-1.docker.io 和 IP 地址为 172.16.20.20 的证书,构建 Harbor 服务。


环境准备

  1. 系统环境

    • 一台支持 Docker 和 Docker Compose 的主机(推荐 Linux 系统,例如 CentOS 7)。
    • 安装 openssldocker-compose
  2. 软件版本

    • Docker ≥ 20.x
    • Docker Compose ≥ 2.x
    • Harbor ≥ 2.0
  3. 网络配置

    • 确保主机 IP 地址为 172.16.20.20,域名 registry-1.docker.io 指向该 IP 地址(可在 /etc/hosts 配置)。

Step 1: 生成自签名证书

1.1 创建 openssl.conf

创建 openssl.conf 文件,内容如下:

[req]
default_bits        = 2048
default_keyfile     = harbor.key
distinguished_name  = req_distinguished_name
req_extensions      = v3_req
x509_extensions     = v3_ca
string_mask         = utf8only[req_distinguished_name]
countryName         = Country Name (2 letter code)
countryName_default = CN
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = JiangSu
localityName        = Locality Name (eg, city)
localityName_default = NanJing
organizationalName = Organization Name (eg, company)
organizationalName_default = HT Inc.
commonName          = Common Name (e.g. server FQDN or YOUR name)
commonName_default  = registry-1.docker.io
commonName_max      = 64[v3_req]
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName = @alt_names[alt_names]
DNS.1 = registry-1.docker.io
IP.1 = 172.16.20.20

1.2 使用 OpenSSL 生成证书和私钥

# 生成私钥
openssl genrsa -out harbor.key 2048# 生成 CSR(证书签名请求) 只要 openssl.cnf默认值配置好, 如下命令一路回车即可
openssl req -new -key harbor.key -out harbor.csr -config openssl.cnf# 使用自签名证书
openssl x509 -req -in harbor.csr -signkey harbor.key -out harbor.crt -days 36500 -extensions v3_req -extfile openssl.cnf给授个权
chmod 777 harbor.*

生成的文件:

  • harbor.key: 私钥
  • harbor.crt: 证书


Step 2: 安装并配置 Harbor

2.1 下载 Harbor 安装包

从 Harbor 官方 GitHub 下载最新版本的安装包。

# 示例下载命令(根据最新版本替换链接)
wget https://github.com/goharbor/harbor/releases/download/v2.11.2/harbor-offline-installer-v2.11.2.tgz# 解压安装包
sudo tar -xf harbor-offline-installer-v2.11.2.tgz -C /opt/cd /opt/harbor

2.2 修改 Harbor 配置

编辑 harbor.yml 文件,设置域名、IP 和证书路径:

hostname: docker.iohttps:port: 443certificate: /opt/harbor/cert/harbor.crtprivate_key: /opt/harbor/cert/harbor.keyharbor_admin_password: Harbor12345data_volume: /data/harbor
log:level: inforotate_count: 50rotate_size: 200Mlocation: /var/log/harbor

harbor.crtharbor.key 拷贝到实际路径 /opt/harbor/cert 。


Step 3: 配置主机和客户端

3.1 配置 /etc/hosts

在主机和需要访问 Harbor 的客户端上,编辑 /etc/hosts 文件,添加以下内容:

172.16.20.20 registry-1.docker.io
172.16.20.20 docker.io可以使用如下命令快速添加echo "172.16.20.20 registry-1.docker.io" | sudo tee -a /etc/hosts
echo "172.16.20.20 docker.io" | sudo tee -a /etc/hostsecho: 输出内容 172.16.20.20 registry-1.docker.io。
| sudo tee -a /etc/hosts: 将输出内容以追加模式(-a)写入 /etc/hosts 文件。
sudo: 确保拥有权限修改系统文件。

3.2 配置 Docker 信任 Harbor

我们证书生成后, 在客户端, 需要信任证书

3.21 windows机器

 验证机器上机要安装上述 harbor.crt证书, 下载后双击安装, 存储到 受信任的根证书颁发机构

 Linux环境

3.22 centos7 上面, 复制证书

若遇到证书报错, 请参考解决办法 https://blog.csdn.net/gs80140/article/details/144662367icon-default.png?t=O83Ahttps://blog.csdn.net/gs80140/article/details/144662367

sudo cp harbor.crt /usr/local/share/ca-certificates/sudo yum install -y ca-certificatessudo update-ca-trust force-enable
sudo update-ca-trust extractcurl https://172.16.20.20 --verbose报错* About to connect() to 172.16.20.20 port 443 (#0)
*   Trying 172.16.20.20...
* Connected to 172.16.20.20 (172.16.20.20) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crtCApath: none
* Server certificate:
*       subject: CN=registry-1.docker.io,L=NanJing,ST=JiangSu,C=CN
*       start date: Dec 20 08:54:50 2024 GMT
*       expire date: Nov 26 08:54:50 2124 GMT
*       common name: registry-1.docker.io
*       issuer: CN=registry-1.docker.io,L=NanJing,ST=JiangSu,C=CN
* NSS error -8156 (SEC_ERROR_CA_CERT_INVALID)
* Issuer certificate is invalid.
* Closing connection 0
curl: (60) Issuer certificate is invalid.
More details here: http://curl.haxx.se/docs/sslcerts.htmlcurl performs SSL certificate verification by default, using a "bundle"of Certificate Authority (CA) public keys (CA certs). If the defaultbundle file isn't adequate, you can specify an alternate fileusing the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented inthe bundle, the certificate verification probably failed due to aproblem with the certificate (it might be expired, or the name mightnot match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, usethe -k (or --insecure) option.
3.23 Ubuntu 22.04上面

sudo cp harbor.crt /etc/ssl/certs/registry-1.docker.io.server.crtchmod 777 /etc/ssl/certs/registry-1.docker.io.server.crtsudo update-ca-certificates若遇到证书报错可以通过 curl-config --ca 命令查看用的是哪个证书将证书直接写进 /etc/ssl/certs/ca-certificates.crtcat harbor.crt >> /etc/ssl/certs/ca-certificates.crt

3.24  在每个 Docker 客户端 , 添加 Harbor 的地址为可信:
mkdir -p /etc/docker/certs.d/registry-1.docker.io
mkdir -p /etc/docker/certs.d/docker.io

上传 harbor.crt 并重命名为 ca.crt

cp harbor.crt /etc/docker/certs.d/registry-1.docker.io/ca.crtcp harbor.crt /etc/docker/certs.d/docker.io/ca.crt

重启 Docker 服务:

systemctl restart docker未重启时测试会报错docker pull mysql:8.0.32
Error response from daemon: Get "https://registry-1.docker.io/v2/": x509: certificate signed by unknown authority但是这样pull是可以的docker pull registry-1.docker.io/library/mysql:8.0.32

Step 4: 启动 Harbor 服务

4.1 安装依赖并启动

运行以下命令安装 Harbor 依赖并启动服务:

注意检查 上述 harbor.yml 文件中配置的存储路径 data_volume: /data/harbor 目录是否有残留的证书文件,需要清除掉, 否则不会被更新如果有旧的证书, 可以删除如下证书存放目录 rm -rf /data/harbor/secret/*sudo ./install.sh --with-trivy

4.2 验证服务运行状态


 

访问 https://registry-1.docker.io,使用默认管理员账号登录:

  • 用户名:admin
  • 密码:Harbor12345(可以在 harbor.yml 中修改)。


Step 5: 推送和拉取镜像

5.1 登录 Harbor

在 Docker 客户端执行以下命令:

docker login registry-1.docker.io
admin
输入密码: Harbor12345

输入 Harbor 的管理员账号和密码。

5.2 设置 docker默认镜像

vi /etc/docker/daemon.json  {"log-opts": {"max-size": "5m","max-file":"3"},"exec-opts": ["native.cgroupdriver=systemd"],"data-root": "/home/docker","registry-mirrors": ["https://registry-1.docker.io"]
}systemctl restart docker

5.3 推送镜像

标记一个测试镜像并推送到 Harbor:

docker tag mysql:8.0.32 registry-1.docker.io/library/mysql:8.0.32
docker push registry-1.docker.io/library/mysql:8.0.32根据上述 配置客户机信任Harbor解决报错: Get "https://registry-1.docker.io/v2/": tls: failed to verify certificate: x509: certificate signed by unknown authority报错: unauthorized: unauthorized to access repository: library/mysql, action: push: unauthorized to access repository: library/mysql, action: pushdocker push registry-1.docker.io/library/mysql:8.0.32 命令可以正常push

5.3 拉取镜像

从 Harbor 拉取镜像测试:

docker pull registry-1.docker.io/library/mysql:8.0.32 可以正常拉取docker pull mysql:8.0.32 只有设置了registry-mirrors才可以成功"registry-mirrors":["https://registry-1.docker.io"]

总结

通过以上步骤,你已经成功:

  1. 配置 OpenSSL 生成支持 IP 和域名的证书。
  2. 使用证书部署并配置 Harbor。
  3. 测试了镜像的推送和拉取。

这套方案适用于生产和开发环境中需要自签名证书的 Harbor 部署场景。

http://www.tj-hxxt.cn/news/92386.html

相关文章:

  • dw个人网站主页怎么做英文网站推广
  • 做签名照的网站成功营销十大经典案例
  • 销售一个产品的网站怎么做的网站权重怎么提高
  • b2b电子商务网站说明其特点外贸国际网站推广
  • wordpress自适应站点seo博客优化
  • 有域名怎么建网站营销网站建设规划
  • 东莞东城网站建设宁德seo培训
  • wordpress葡萄酒模板下载优化大师并安装
  • 网站首页的滚动图片怎么做seo的范畴是什么
  • 网站开发 mac怎么查询搜索关键词
  • 网站建设中需求分析报告中国疫情今天最新消息
  • 电子商务网站建设html网页设计图片
  • 达州网站制作百度推广一年多少钱
  • 小游戏开发制作seo外包收费
  • 工程承包网站有哪些如何做免费网站推广
  • PHP网站开发简单实例央视新闻最新消息今天
  • 高端网站建设网站建设设计思路长沙网站快速排名提升
  • 做网站 收费满十八岁可以申请abc认证吗
  • 企业网站代码关键词优化包年推广
  • 得物网上商城网站关键词推广优化
  • 汉滨区建设局网网站网站优化软件哪个好
  • 中山快速做网站费用搜索引擎广告
  • 帮人家做网站维护百度营稍
  • 商业网站建设案例课程百度seo排名优化软件化
  • 东莞公司注册地址关键词优化心得
  • dw做网站首页怎么做长沙网站托管seo优化公司
  • 福州免费网站建站模板石家庄seo排名公司
  • 网上建设网站需要做的工作百度站长平台电脑版
  • 建设物业公司网站网络销售推广是做什么的具体
  • 成品网站源码1688danji6友情链接买卖