【问题标题】:SSL/TLS Private Key chain for multi environment support用于多环境支持的 SSL/TLS 私钥链
【发布时间】:2019-03-06 05:23:53
【问题描述】:

我可以通过一个接一个地链接来创建一个包含多个私钥的 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-----

我正在尝试构建一个可用于所有环境(DEV、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 中。但我不确定是否可以为private key 进行类似的链接。对于所有 3 个环境,我都有 3 个不同的私钥。

【问题讨论】:

    标签: docker ssl nginx


    【解决方案1】:

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

    【讨论】:

    • 谢谢@Steffen。我猜是从构建中删除 ssl 证书并从文件系统中挂载它们的另一种方法。
    猜你喜欢
    • 2018-08-23
    • 2014-07-02
    • 2023-04-01
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    • 2014-12-12
    相关资源
    最近更新 更多