为人工 docker 回购使用多域证书
Using a multidomain certificate for artifactory docker repo
我有以下
a virtual docker repo docker-virtual
a remote docker repo dockerhub
a local docker repo docker-local
docker-local 是默认的部署仓库。我可以使用多域证书在我的反向代理中配置虚拟存储库吗?
证书是否需要支持本地repo?
"Does the certificate need to support the local repo?"
不一定,只要您在 Artifactory 中使用虚拟 docker 存储库的 Default Deployment Repository 功能,您只需将一个注册表端点与客户端一起使用即可推送和拉取图像。
如果您要使用多个注册表端点,则通配符证书很好。例如,考虑这个 Nginx 配置片段和具体的 "server_name" 指令:
server {
listen 443 ssl;
listen 80 ;
server_name ~(?<repo>.+)\.art-prod.com art-prod;
...
rewrite ^/(v1|v2)/(.*) /artifactory/api/docker/$repo//;
...
}
此处的正则表达式应捕获 URL 的子域部分,以便稍后在将 URL 从“/v2/”重写为包含实际存储库名称的 Artifactory API 的完整 URI。在这种情况下,您的配置将处理多个主机名,因此最好为 *.art-[= 使用通配符证书22=].
我有以下
a virtual docker repo docker-virtual
a remote docker repo dockerhub
a local docker repo docker-local
docker-local 是默认的部署仓库。我可以使用多域证书在我的反向代理中配置虚拟存储库吗?
证书是否需要支持本地repo?
"Does the certificate need to support the local repo?"
不一定,只要您在 Artifactory 中使用虚拟 docker 存储库的 Default Deployment Repository 功能,您只需将一个注册表端点与客户端一起使用即可推送和拉取图像。
如果您要使用多个注册表端点,则通配符证书很好。例如,考虑这个 Nginx 配置片段和具体的 "server_name" 指令:
server {
listen 443 ssl;
listen 80 ;
server_name ~(?<repo>.+)\.art-prod.com art-prod;
...
rewrite ^/(v1|v2)/(.*) /artifactory/api/docker/$repo//;
...
}
此处的正则表达式应捕获 URL 的子域部分,以便稍后在将 URL 从“/v2/”重写为包含实际存储库名称的 Artifactory API 的完整 URI。在这种情况下,您的配置将处理多个主机名,因此最好为 *.art-[= 使用通配符证书22=].