托管服务提供商处带有密码加密密钥的 SSL 证书

托管服务提供商处带有密码加密密钥的 SSL 证书

我们是一家软件公司,为客户提供托管服务。我们在荷兰的一个大型数据中心拥有一个 VPS。对于某些应用程序,我们需要 SSL 证书,并希望使用受密码保护的密钥文件对其进行加密。

我们的 VPS 时不时会因为更新而重新启动,但这意味着我们的 apache 不会立即启动,因为需要密码。这会导致停机,当然这是一个真正的大问题。

我们可以把密码提供给我们的 VPS 数据中心,或者基于密钥文件创建没有密码的证书。这两种解决方案似乎都不是最好的,因为它们会危及我们证书的安全性。这个问题的最佳解决方案是什么?

答案1

无论发生什么情况,您都需要解密密钥文件才能使用它。有几种选择。

  1. 解密密钥文件并使用它。这可以永久地顺利重启您的服务,这正是您所追求的。但密钥将不受保护,以未加密的形式存储在您的服务器上。
  2. 向服务提供商提供证书密码。这可能是理想的选择,但您需要一定程度的保证,即服务将要启动时会提示重新启动。他们可能会让监控软件提醒他们发生此事件,但在这种情况下,您应该接受未输入密钥密码的情况,或者服务提供商输入密码延迟的情况。您需要协商服务提供商将为您提供此服务的条款以及他们将提供哪些成功保证。如果他们会提供的话。
  3. 一些 http 服务器,比如 apache,提供了一个名为SSLPassPhrase对话框它将尝试使用编写的程序解密密钥,该程序在执行时会传递正确的密码短语。这可以是您选择的 shell 脚本或程序。这样做的好处是为您提供了选项 1,但只能作为选项 1 中描述的所有问题的薄弱屏障。此外,根据您提供密码可执行文件的谨慎程度(或不谨慎程度),这可能会为某人提供一种获取某些东西的机制其他比启动时运行的密码可执行文件更重要。
  4. 让您的托管服务提供商要求他们提供计划的停机时间(如果他们进行重新启动),以便您可以自己输入密码,或者更改更新以在您准备好立即输入证书密码时运行。

我的第一个建议是问问自己,为什么需要加密 SSL 证书,如果服务中断(比如说 2 小时后才被发现),这会给您的运营带来什么损失。如果证书被泄露,您会面临哪些潜在损失?需要多长时间才能修复?如果成本比 SSL 证书本身还高,而且一旦发生泄露,恢复所需的时间太长,那么也许加密证书是正确的做法。

坦率地说,鱼与熊掌不可兼得。如果您想加密 SSL 密钥,那么您将以非正常重启和操作延迟为代价。如果您对它进行加密但提供了一种自动解密的方法,那么它可能同样毫无价值,甚至可能比一开始就解密密钥更危险。如果您将其作为 VPS 提供商的责任,那么您只是将问题转移到他们身上,并且他们可能会花费您很多钱来为您提供所需的保证,或者您必须接受 VPS 提供商在重新启动 VPS 时有时无法满足您的期望。

我的建议是及时并提前警告重启,我认为要求您的 VPS 提供商这样做并不为过。这样就不会发生您无法控制的事件。

*使用问题SSLPassPhrase对话框这是人们在使用 cron 作业时犯的一个类似、更常见且更成问题的错误。也就是说,部署 cronjob 以 root 身份运行,然后将文件所有权交给非 root(例如 FTP)用户,该用户可能会修改应用程序以提升权限。如果您编写一个程序来吐出密码,请采取措施确保该文件不易读取,也不能由 root 以外的任何人修改(这包括确保其保存的父目录不属于其他人)。

相关内容