让我们加密客户端

与其他许多人一样,我一直在关注让我们加密。Let’s Encrypt是一个新的零成本X.509证书颁发机构支持自动化证书管理环境(ACME)协议。ACME允许您自动创建和检索HTTPS服务器证书。正如任何维护过许多HTTPS服务器的人都可以证明的那样,不幸的是,这个过程是手动的,容易出错,并且在CA之间有所不同。

在我的一些个人领域,比如这个博客.jsefson.org,我一直在使用卡伯特签署HTTPS服务器证书的权限。CACert的问题是,CACert信任锚没有与足够多的操作系统和web浏览器一起提供。用户体验类似于获得自签名服务器证书。对于您不想信任外部方的组织内部服务器,我仍然认为运行您自己的CA并将其分发给用户比使用公共CA要好(比较我的XMPP服务器证书设置). 但对于公共服务器,无需预先配置即可获得可用性更为重要。因此,我决定我的公共HTTPS服务器应该使用CA/浏览器论坛-经批准的CA支持ACME,只要Let’s Encrypt是可信的、零成本的,它们就是一个不错的选择。

我需要一个自由软件ACME客户,并着手研究那里有什么。不幸的是,我没有找到任何列出可用选项并进行比较的网页。让我们加密CA致“官员”让我们加密客户端,作者:雅库布热身,詹姆斯·卡斯滕,埃克斯利和其他几个。该手册包含指向接缝无关部分。这些客户是letsencrypt-nosudo公司通过丹尼尔·罗斯勒等,以及简单(simp_le)(再一次!)雅库布热身。来自letsencrypt.org的client-dev邮件列表我还发现letsencrypt.sh公司通过格哈德·海夫特LetsEncryptShell程序通过扬·莫伊什.有人知道其他ACME客户吗?

通过比较这些客户,我了解到我不喜欢他们的什么。我想要一些小的东西,这样我就可以审计它。我想要一些不需要root访问的东西。最好,它应该能够在我的笔记本电脑上运行,因为我还没有准备好在服务器上运行一些东西。通常,它必须是安全的,这意味着它如何处理私钥。这个letsencrypt公司官方客户端可以做任何事情,并具有用于各种服务器软件的插件,以自动化ACME协商。所有加密操作似乎都隐藏在客户端中,这通常意味着它不灵活。我真的不喜欢它的设计,它看起来像你典型的单片概念验证设计。这个简单(simp_le)客户看起来干净多了,给了我一种很好的感觉。这个letsencrypt.sh公司客户端很简单,是用/bin/shshell脚本编写的,但它看起来有点过于简单。这个LetsEncryptShell看起来不错,但我想要更自动化的东西。

所有这些客户都没有什么letsencrypt-nosudo公司客户有能力让我进行私钥操作。所有操作都是在命令行上使用开放SSL。这将允许我将ACME用户私钥和HTTPS私钥放在YubiKey公司,使用其PIV applet和类似于我曾创建SSH主机CA。虽然HTTPS私钥必须在HTTPS服务器上可用(用于设置TLS连接),但我不希望ACME用户私钥在那里可用。同样,我也不想在我的笔记本电脑上有ACME或HTTPS私钥。与更干净的simp_le客户端相比,letsencrypt-nosudo工具的边缘更加粗糙。然而,私钥处理方面对我来说是决定性的问题。

在修复了一些RSA密钥大小的硬编码限制,获取证书就像遵循letsencrypt-nosudo指令一样简单。我将在后面的文章中继续介绍如何将ACME用户私钥和HTTPS服务器证书私钥放在YubiKey上,以及如何将其与letsencrypt-nosudo一起使用。

现在您可以享受浏览我的基于HTTPS的博客! 谢谢,让我们加密!

9对“让我们加密客户端”的回复

  1. 顺便说一下,我使用正式的Debian letsencrypt客户端(在Debian sid中)为我的公司XMPP服务器获取证书(在Debin jessie中为韵律)。我对其进行了配置,以便客户端只能使用SSL连接,但我担心s2s的相同配置会破坏联合。至少debian.org XMPP服务器看起来很安全。

  2. Pingback:为什么我不使用2048或4096 RSA密钥大小–Simon Josefsson的博客