Skip to content

docker-distribution TLS配置

配置TLS加密

生成自签名证书

bash
# 创建证书目录
mkdir -p /certs

# 生成自签名证书
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/domain.key -x509 -days 365 -out /certs/domain.crt -subj "/CN=registry.example.com" -addext "subjectAltName = DNS:registry.example.com,IP:192.168.148.140"

使用TLS启动registry

bash
# 使用Docker镜像启动带TLS的registry
docker run -d \
  --restart=always \
  --name registry \
  -p 5000:5000 \
  -v /data/registry:/var/lib/registry \
  -v /certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
  registry:2

TLS配置最佳实践

  1. 使用受信任的CA证书:在生产环境中,建议使用受信任的CA证书,而不是自签名证书
  2. 定期更新证书:确保证书在过期前及时更新
  3. 保护私钥安全:私钥文件应设置严格的权限(如600),防止未授权访问
  4. 配置证书链:如果使用中间CA证书,确保正确配置证书链
  5. 启用HTTP严格传输安全(HSTS):在支持的情况下启用HSTS,强制客户端使用HTTPS