我刚刚配置并安装了Let's Encrypt的免费 SSL 证书。它很棒,而且很容易设置。
然而,在这个后斯诺登时代,我想知道这到底有多安全。例如,该程序从不要求您创建一个私钥,而是他们神奇地为您创建一个。这很好,但是有没有人看过这到底有多安全?
注:我已经看到了类似相关问题本。然而,这是关于“过程”的安全性(针对黑客攻击)并且假设证书本身是安全的。我更担心证书的安全性和由此产生的加密。
我刚刚配置并安装了Let's Encrypt的免费 SSL 证书。它很棒,而且很容易设置。
然而,在这个后斯诺登时代,我想知道这到底有多安全。例如,该程序从不要求您创建一个私钥,而是他们神奇地为您创建一个。这很好,但是有没有人看过这到底有多安全?
注:我已经看到了类似相关问题本。然而,这是关于“过程”的安全性(针对黑客攻击)并且假设证书本身是安全的。我更担心证书的安全性和由此产生的加密。
还有一个名为“acme-tiny”的替代“让我们加密”客户端项目。
它的自动化程度较低,但更小。用他们自己的话来说:
这是一个很小的、可审核的脚本,您可以将其放在服务器上以颁发和更新 Let's Encrypt 证书。由于它必须在您的服务器上运行并且可以访问您的私人 Let's Encrypt 帐户密钥,因此我试图使其尽可能小(目前少于 200 行)。唯一的先决条件是 python 和 openssl。
如果您信任一般的letsencrypt客户端,但只想手动创建CSR,您可以按照此处列出的步骤进行操作:
这个想法的核心是这一行:
letsencrypt certonly \
--authenticator manual \
--server https://acme-v01.api.letsencrypt.org/directory --text \
--email webmaster@example.com \
--csr signreq.der
例如,该程序从不要求您创建一个私钥,而是他们神奇地为您创建一个。
我知道密码学很神奇,但在这种情况下它也是安全的...... :-)
因为当使用 Let's Encrypt 客户端时,密钥对是在您的服务器上本地生成的,而不是发送到 Let's Encrypt 服务器* - 与其他一些商业 CA 不同,后者确实/确实在自己的服务器上生成密钥对。如果您怀疑您应该检查您正在使用的客户端的来源。
我更担心证书的安全性和由此产生的加密。
“产生的加密”完全取决于您的证书和 ssl/tls 配置,而不取决于您使用的 CA(= Let's Encrypt)。由于官方 LE 客户端创建 2048 位证书,我可以说这些是安全的。其他一切都取决于您的配置。
*有一些例外情况,但这些非常罕见。有一些 Web 浏览器客户端会在您的浏览器中生成私钥,但您可以轻松地规避这一点:使用真实(离线)客户端或例如使用https://gethttpsforfree.com/手动进行。