我通过ansibleconfiguration了Nginx的安装和configuration(连同https站点的安装SSL证书)。 SSL证书在密码下。
我想写一个正在重新启动Nginx的ansilbe任务。 问题在于。
通常情况下,https://site里面的Nginx在重启过程中要求inputPEM pass phrase 。 Ansible在执行剧本期间不要求密码。
有解决scheme将解密的证书和密钥存储在某个私人目录中。 但是我并不想把我的证书和密钥放在没有encryption的地方。
是一个优雅的重载幂等的安全吗?
如何做一个健康检查的windows启动应用程序运行在windows Docker windows容器与Ansible?
只有在variables包含特定string时才运行Ansible任务
PowerShell删除项目文件夹失败只有当通过Ansible运行
在windows上安装Ansible
如何通过ansible将密码传递给Nginx(或openssl)? 完美的场景如下:
Ansible要求提供SSL密码(通过vars_promt )。 另一个select是使用可靠的保险库。
Ansible正在重新启动Nginx,当Nginx请求PEM pass phrase密码时,ansible会将密码传递给Nginx。
可能吗?
使用Ansible安装Bundler gem
Ansible linux部署错误{“Failed”:true,“parsed”:false}
Ansible – pipe理windows 2003和WinRM连接超时
shell的init:错误检索当前目录:getcwd – 通常的修复不工作
Ansible:将一个唯一的文件复制到组中的每个服务器
Nginx具有ssl_password_file参数。
指定一个密码为密钥的文件 ,其中每个密码在一个单独的行上指定。 加载密钥时会依次尝试密码。
例:
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保存在ssl_password_file -vault中,复制它,重新启动Nginx,然后如果成功删除它。
如果实际工作或者其他可能产生的副作用(例如,手动service Nginx restart可能会失败),我没有第一手经验,但对我来说这似乎是合乎逻辑的方法。
如果你对私钥有足够的权限(比如只让Nginx能够读取),这可能就足够了。 无论如何,Nginx将不得不将其加载到内存中。 攻击者可能很难恢复,但如果他们拥有root权限,则应该考虑密钥泄漏。
或者,您可以将密码输入到正在重新启动的命令中(例如echo mypass | service Nginx restart )。 这将导致它在进程列表上以纯文本显示,不应被视为更安全。
我建议锁定文件的权限,而不是有一个密码。 我不相信Ansible有任何方法来指定对个别提示的回应,而不是sudo。
总结
以上是内存溢出为你收集整理的在重新启动期间,将https密码传递给Nginx全部内容,希望文章能够帮你解决在重新启动期间,将https密码传递给Nginx所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容