Docker 用于多环境支持的SSL/TLS私钥链

Docker 用于多环境支持的SSL/TLS私钥链,docker,ssl,nginx,Docker,Ssl,Nginx,我可以通过一个接一个地链接多个私钥来创建包含多个私钥的SSL/TLS私钥文件吗 因此,链将类似于: -----BEGIN RSA PRIVATE KEY----- . . 9TvrBymCYT1AYhxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxABzg6jGPUo2oU6vl cqKzgV8XpRqdKtzrI/2Bskxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 7ptgeHcEOtNhqmXgO+utKDrzG0ekpW3W+e

我可以通过一个接一个地链接多个私钥来创建包含多个私钥的SSL/TLS私钥文件吗

因此,链将类似于:

-----BEGIN RSA PRIVATE KEY-----
.
.
9TvrBymCYT1AYhxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxABzg6jGPUo2oU6vl
cqKzgV8XpRqdKtzrI/2Bskxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
7ptgeHcEOtNhqmXgO+utKDrzG0ekpW3W+eCRBe6ncxGVIrk/2fglov9sWwolvVSr
.
.
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
.
.
9TvrBymCYT1AYhxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxABzg6jGPUo2oU6vl
cqKzgV8XpRqdKtzrI/2Bskxxxffffffffffffffffffffffffffffffffffffffx
7ptgeHcEOtNhqmXgO+utKDrzG0ekpW3W+eCRBe6ncxGVIrk/2fglov9sWwolvVSr
.
.
-----END RSA PRIVATE KEY-----
我正在尝试构建一个可以用于所有环境(开发人员、QA、UAT)的nginx docker映像。并试图避免为特定环境建立形象。下面是
Dockerfile

FROM nginx:1.15.0-alpine

RUN rm /etc/nginx/conf.d/default.conf
COPY nginx.conf /etc/nginx/conf.d
COPY certs/nginxbundle-dev.crt /etc/ssl/nginx.crt
COPY certs/private_key_bundle.key /etc/ssl/nginx.key
下面是nginx配置

upstream backendservice {
  server 0.0.0.0:8080;
}

server {
  location / {
        proxy_pass http://backendservice;
    }

  listen 443 ssl;
  server_name *.xyz.com;
  client_max_body_size 100M;
  ssl_certificate /etc/ssl/nginx.crt;
  ssl_certificate_key /etc/ssl/nginx.key;
}
我想我可以将所有3种环境的SSL/TLS证书添加到证书包
/etc/SSL/nginx.crt
。但是我不确定是否可以为
私钥
进行类似的链接。我有3个不同的私钥用于所有3个环境。

您不能这样做。 将文件中的证书链接在一起意味着它应该将第一个证书作为叶证书提供,而将其他证书作为链证书提供,即它不会仅从文件中拾取特定主机的证书。类似地,它期望密钥文件中只有与叶证书匹配的私钥作为第一个条目。它将忽略文件中的任何其他条目。

您不能这样做。
将文件中的证书链接在一起意味着它应该将第一个证书作为叶证书提供,而将其他证书作为链证书提供,即它不会仅从文件中拾取特定主机的证书。类似地,它期望密钥文件中只有与叶证书匹配的私钥作为第一个条目。它将忽略文件中的任何其他条目。

谢谢@Steffen。我想另一种方法是从构建中删除ssl证书并从文件系统中挂载它们。谢谢@Steffen。我想另一种方法是从构建中删除ssl证书并从文件系统中挂载它们。