harbor和docker配置https访问

如果配置了科学上网代理,一定要做免代理的配置,不然https访问会失败。

免代理配置

Docker免代理配置

bash 复制代码
[root@node1 harbor]#cat /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://10.0.0.1:7897"
Environment="HTTPS_PROXY=http://10.0.0.1:7897"
Environment="NO_PROXY=localhost,127.0.0.1,10.0.0.101,qazwsx.wsxedc.com"

重启docker

bash 复制代码
systemctl daemon-reload
systemctl restart docker

windows科学上网免代理配置

生成自签证书

bash 复制代码
#!/bin/bash

openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=RootCA" \
 -key ca.key \
 -out ca.crt
openssl genrsa -out qazwsx.wsxedc.com.key 4096
openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=qazwsx.wsxedc.com" \
    -key qazwsx.wsxedc.com.key \
    -out qazwsx.wsxedc.com.csr
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=qazwsx.wsxedc.com
EOF
openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in qazwsx.wsxedc.com.csr \
    -out qazwsx.wsxedc.com.crt

直接运行上述脚本,ca证书和服务器证书都会生成在当前目录下

Harbor

修改Harbor配置

将harbor的证书配置指向上面刚生成的服务器端证书。

harbor关键配置如下:

bash 复制代码
# Configuration file of Harbor

# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: qazwsx.wsxedc.com

# http related config
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 80

# https related config
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /root/certificate/qazwsx.wsxedc.com.crt
  private_key: /root/certificate/qazwsx.wsxedc.com.key
  # enable strong ssl ciphers (default: false)
  # strong_ssl_ciphers: false

重启harbor

bash 复制代码
./prepare
docker compose down -v
docker compose up -d

Docker

配置CA证书

创建目录,目录名字有特定要求,必须以域名命令,如果不是443端口还需要加上端口号,默认是443端口,所以一般不需要加。

bash 复制代码
/etc/docker/certs.d/
    └── yourdomain.com:port
       ├── yourdomain.com.cert  <-- 客户端证书,用于双向认证中的客户端认证
       ├── yourdomain.com.key   <-- 客户端私钥,用于双向认证中的客户端认证
       └── ca.crt               <-- CA证书

这里使用的是单项认证,客户端的认证其实已经通过用户名,密码的方式认证了,配置案例如下:

bash 复制代码
[root@node1 harbor]#ls /etc/docker/certs.d/qazwsx.wsxedc.com/
ca.crt

docker默认会自动加载上述路径中的CA证书。

重启docker

bash 复制代码
systemctl daemon-reload
systemctl restart docker
相关推荐
小Pawn爷15 分钟前
1.Docker基础
运维·docker·容器
chinesegf17 分钟前
清理docker残留镜像images
运维·docker·容器
小Pawn爷36 分钟前
2.Docker的存储
运维·docker·容器
广州中轴线1 小时前
OpenStack on Kubernetes 生产部署实战(十七)
容器·kubernetes·openstack
礼拜天没时间.2 小时前
自定义镜像制作——从Dockerfile到镜像
linux·docker·容器·centos·bash
luffy54592 小时前
windows下通过docker-desktop创建redis实例
windows·redis·docker·容器
JMchen1232 小时前
Android网络安全实战:从HTTPS到双向认证
android·经验分享·网络协议·安全·web安全·https·kotlin
m0_737302582 小时前
安卓证书在线生成_免费一键制作apk打包 一键制作工具
网络协议·https·ssl
weixin_404679312 小时前
docker部署ollama
运维·docker·容器
chenjingming6662 小时前
浏览器(如chrome)代理抓包时提示Your Connection is not private 问题临时处理
chrome·https