公司通常在哪里存储SSL证书以备将来使用?


26

我们最近为我们的域购买了通配符SSL证书。我们将所有证书转换为Java密钥库,但是现在我们在问自己应该在哪里存储这些证书以供以后使用。

人们是否对这些类型的文件使用诸如BitBucket之类的源代码控制,还是仅在每次需要时生成它,或者其他?

我们想知道在存储这些证书以备将来使用时是否存在标准解决方案或任何“最佳实践”。


将其备份到传统备份解决方案中进行加密。不要存储未经任何外部提供程序加密的私钥。我通常在证书和密钥文件名中包括签发日期和到期日期,以进行区分。
Andrew Domaszek

Answers:


22

有多种解决方案:

一种途径是特定的密钥库,它是基于硬件的设备,硬件安全模块或基于软件的等效物。

另一种方法是简单地撤销旧密钥,并在情况出现时生成一个新的私钥/公钥对。这在某种程度上将问题从维护密钥安全性转移到了使用证书提供者及其重新发行程序来保护帐户的用户名/密码。这样做的好处是,大多数组织已经拥有特权帐户管理解决方案,例如1 2

离线存储有多种方法,从打印包括密码的私人和公共密钥对的硬拷贝(但将恢复为母狗)到简单地将其存储在可长期存储的数字媒体上。

真正糟糕的地方是GitHub,您的团队WiKi或网络共享(您会想到)。

2015年4月 29日更新:Keywhiz似乎也是一种有趣的方法。


我很好奇,HSM的“基于软件的等效”是什么意思?

如今,一些硬件设备供应商也以虚拟设备(VM)的形式出售其设备。还有诸如Oracle密钥库和开放源代码SoftHSM之类的东西。
HBruijn 2014年

所以基本上,它允许把一个标准的计算机到一个HSM ...

1
“但是那将是一只要恢复的母狗”->这使我很开心!除了玩笑,您应该在保存之前对其进行加密。
Ismael Miguel 2014年

根据定义,您将向所有人公开您的公钥。没有理由对此进行加密。但这也不是那么草率的理由。安全性主要针对私钥,私钥通常确实应进行加密/密码保护。您应该目标是尽可能减少副本。
HBruijn 2014年

21

不,SSL证书不会进入源代码管理,至少不会进入私有密钥部分。

像对待密码一样对待它们。实际上,我们的密码存储方式与我们的密码完全相同-在KeePass中。它允许您附加文件,并且已加密。


3

如果将私钥放在源代码管理中,则有权访问它的任何人都可以模拟您的服务器。如果您的网络服务器未使用PFS(完美的前向保密性),那么也可以使用Wireshark等常用的开放源代码工具解密捕获的SSL流量。

您可以通过DES或AES使用OpenSSL使用密码短语对密钥进行加密来保护密钥。OpenSSL适用于Linux,OSX和Windows。

如果密码短语不方便(例如,在自动启动但不支持密码短语自动输入的Web服务器上),OpenSSL也可以删除该密码短语。

使用AES加密(比DES更安全)添加密码:

openssl rsa -aes256 -in private.key -out encrypted.private.key

删除密码(系统会提示您输入密码):-

openssl rsa -in encrypted.private.key -out decrypted.private.key

1
如果你正在做的事情正确那么即使私钥暴露不应导致过去交通的妥协,但它肯定以妥协的未来交通更容易使MITM'ing。
2014年

@Michael,您好:从理论上讲,但是很遗憾,我已经能够解密许多Apache和IIS捕获内容,因此我只能假定默认情况下PFS是关闭的。甚至很多IPSEC VPN都将其关闭。
Tricky

由于许多密码套件都不支持PFS,因此默认情况下PFS并没有那么多。尝试SSL Labs服务器测试一段时间;它指示哪些密码套件支持FS。当然,禁用所有非FS密码套件可能会使许多客户端感到冷落,因为它们不支持FS密码套件。但是,给予FS套件优惠待遇应该可以(但我强烈建议不要手动订购密码套件,除非您知道自己在做什么以及它们的相对优点和缺点)。
CVn 2014年

感谢您对SSL Labs @Michael的推荐。不幸的是,我的服务器不是面向互联网的,但是我在启用密码的过程中遇到了麻烦,并且正如您所建议的,PFS似乎仅受某些密码支持。PFS确实确实阻止了我解码数据包跟踪。我将相应地更新答案。
整蛊

1

阅读有关KeyWhiz的另一个选择是HashiCorp的Vault。我相信它不仅是一个密码管理器,还是一个Secrets商店,我认为它有点类似于KeyWhiz。它使用GO编写,并且客户端也充当服务器,并且挂接到一堆后端和身份验证方法中。保险柜也是开源的,还具有“企业”选项。

由于SSL密钥和证书只是文本文件,因此您可以对它们进行base64编码,然后将其另存为Vault中的字符串,甚至也保存为Vault中的文本。没有WebUI或GUI,也不是所有命令行或脚本驱动的,并且具有非常好的,稳定的Web API可以启动。

  1. https://www.vaultproject.io/
  2. https://github.com/hashicorp/vault

0

我建议查看脱机HSM(例如硬件加密令牌或CAC)来存储私钥和证书。这不仅可以保护私钥免遭意外泄露,还可以提供一些基本的加密卸载功能。

如果您需要管理更多的加密资产,我建议您研究一下企业密钥和证书管理软件,该软件可以自动续订,跟踪生命周期,自动配置到端点等。其中大多数将静态加密的资产存储为数据库中的CLOB。


为什么要下票?不抱怨 好奇这个答案出了什么问题。
马特

不知道为什么投票失败。HSM专为安全密钥存储和高速加密而设计。我只能猜测其与费用或更复杂的管理有关。所有主要银行都使用HSM进行诸如Chip&Pin交易之类的关键操作。
Tricky
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.