我有一个在 docker 容器内运行的 nginx。在 server 块内的 nginx conf 文件中,我放入了 ssl 配置——端口、crt 和密钥。nginx 查找 crt 和 key 文件的最简单方法是我为这两个文件创建一个 docker secret,并在生成服务时将其挂载到 /run/secrets/。但是,我希望在 docker 映像中有 crt 和 key 文件,它们可以像 nginx 可以使用的开箱即用文件一样,如果客户创建一个秘密,并插入 crt 和 key 文件,我希望 nginx 使用那些.
通过 3.1 compose file docs for secret,我意识到,要么秘密必须预先存在,要么必须作为 compose 文件的一部分创建。现在的挑战是,如果它必须预先存在,那么我将强制客户创建一个秘密(这意味着不仅要创建一个秘密,而且还要准备好 crt 和密钥文件作为 create secret 命令的输入)。如果我在撰写文件中创建它,我仍然需要访问客户必须提供的 crt 和密钥文件。这意味着,在任何一种情况下,这个东西都不能开箱即用。
我该如何解决这个问题?
如果有人读了这么远仍然没有失去兴趣,即使上面得到了解决,我面临的另一个问题是在 nginx conf 中,我不能按优先级顺序指定 2 个证书以在相同的情况下选择它们服务器块。有人对此也有任何想法吗?