security - 使用 Ansible 自动部署 SSL 私钥

标签 security ssl encryption ansible private-key

我正在创建 Ansible 脚本来部署我的网站。我的一些网站使用 SSL 进行信用卡交易。我也对尽可能自动化部署 SSL 很感兴趣。这意味着我需要自动分发私钥。换句话说,私钥必须以某种格式存在于服务器之外(例如,在版本控制中)。

我如何安全地执行此操作?我遇到的一些想法:

1) 使用密码保护私钥 ( http://red-badger.com/blog/2014/02/28/deploying-ssl-keys-securely-with-ansible/ )。这需要在部署期间提供密码。

2)加密私钥文件(aescrypt、openssl、pgp),类似这样:https://security.stackexchange.com/questions/18951/secure-way-to-transfer-public-secret-key-to-second-computer

3) 第三种选择是在每次部署时生成一个新的私钥,并尝试找到一个能够满足自动证书请求的证书提供者。如果过程中出现延迟,这可能会很复杂并且会出现问题。

我错过了什么吗?是否有首选解决方案或其他任何人已经在这样做?

最佳答案

另一种方法是使用 Ansible Vault在休息时加密您的私钥。这将需要您 provide the vault password无论是在 Ansible 命令行上,还是从 Ansible 将从中读取的文本文件或脚本中。

确实没有首选方法。我的猜测是,如果您询问 10 个 Ansible 用户,您会得到 10 个关于安全性的不同答案。由于我们公司早在 Ansible Vault 可用之前就开始使用 Ansible,因此我们基本上将所有敏感文件存储在只有我们的运营团队可以访问的服务器上的本地目录中。在某个时候,我们可能会迁移到 Ansible Vault,因为它已与 Ansible 集成,但我们还没有到那一步。

关于security - 使用 Ansible 自动部署 SSL 私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28943195/

相关文章:

.net - 使用 protected 配置对web.config进行加密毫无意义吗?

ruby-on-rails - Rails 应用程序被利用,如何找到哪个利用?

c++ - SSL_use_certificate 似乎导致双重释放

javascript - 没有 HTTPS 的带有 Google Hangout API 的本地 Javascript 文件

javascript - JavaScript 有非对称加密选项吗?

java - 忽略 spring mvc 中的安全注释

android - 在 Google In-App Billing API 中使用什么作为开发人员有效负载?

apache - 当我想从 http 重定向到 https 时,它会发送到另一个网站

Python密码学包RSA——将私钥保存到DB

javascript - 尝试自动访问使用 Javascript 加密表单数据的 Web 界面