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