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

Ame*_*ite 27 certificate ssl-certificate best-practices

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

人们是否对这些类型的文件使用像 BitBucket 这样的源代码控制,或者只是在每次需要时生成,或者其他什么?

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

Gra*_*ant 23

不,SSL 证书不进行源代码管理,至少不是私钥部分。

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


HBr*_*ijn 23

有多种解决方案:

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

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

有多种离线存储方式,从打印包含密码的私人和公共密钥对的硬拷贝(但那将是一只母狗来恢复)到简单地将它们存储在可长时间存储的数字媒体上.

真正糟糕的地方是 GitHub、你的团队 Wiki 或网络共享(你明白了)。

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


Tri*_*cky 5

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

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

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

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

openssl rsa -aes256 -in private.key -out encrypted.private.key
Run Code Online (Sandbox Code Playgroud)

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

openssl rsa -in encrypted.private.key -out decrypted.private.key
Run Code Online (Sandbox Code Playgroud)