gpt4 book ai didi

nginx - 在重启期间将证书密码传递给带有 https 站点的 Nginx

转载 作者:行者123 更新时间:2023-12-02 00:13:28 35 4
gpt4 key购买 nike

我通过 ansible 配置了 nginx 安装和配置(以及为 https 站点设置 SSL 证书) 。 SSL 证书采用密码。

我想编写 ansilbe 任务来重新启动 nginx。问题如下。

通常情况下,带有 https 站点的 nginx 在重新启动期间会要求输入PEM 密码。 Ansible 在执行 playbook 期间不会要求输入该密码。

solution将解密的证书和 key 存储在某个私有(private)目录中。但我真的不想将我的证书和 key 留在未加密的地方。

如何在重启期间通过ansible将密码传递给nginx(或openssl)?完美的场景如下:

  1. Ansible 正在要求 SSL 密码(通过 vars_promt)。另一种选择是使用 ansibleVault。
  2. Ansible 正在重新启动 nginx,当 nginx 要求输入PEM 密码时,ansible 正在将密码传递给 nginx。

可能吗?

最佳答案

Nginx 有 ssl_password_file参数。

Specifies a file with passphrases for secret keys where each passphrase is specified on a separate line. Passphrases are tried in turn when loading the key.

示例:

http {
ssl_password_file /etc/keys/global.pass;
...
server {
server_name www1.example.com;
ssl_certificate_key /etc/keys/first.key;
}
server {
server_name www2.example.com;
# named pipe can also be used instead of a file
ssl_password_file /etc/keys/fifo;
ssl_certificate_key /etc/keys/second.key;
}
}

您可以做的是将 ssl_password_file 保留在 ansible-vault 中,将其复制,重新启动 nginx,如果成功则将其删除。

我没有第一手经验,如果它真的有效或可能产生什么其他副作用(例如手动 service nginx restart 可能会失败),但这似乎是合乎逻辑的接近我。

关于nginx - 在重启期间将证书密码传递给带有 https 站点的 Nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33084347/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com