将子域添加到现有证书

时间:2016-01-28 01:43:41

标签: lets-encrypt

这似乎应该是非常简单的事情,但我不确定如此安全而不是抱歉。

我使用https://gethttpsforfree.com/

mywebsite.comwww.mywebsite.com创建了证书

我现在想要添加static.mywebsite.commedia.mywebsite.comcache.mywebsite.com,这些指向AWS上的S3存储桶。

我对这个过程有几个问题:

  • 是否只是使用我上次生成的相同帐户和域私钥,并创建新的证书签名请求?

  • 如果是这样,CSR应该包含我想要的所有域/子域,还是仅包含新域名?

  • 由于这些指向S3存储桶,我是否必须暂时将它们指向网络服务器进行验证,还是有办法在S3上验证?

  • 假设没有其他问题,我是否应该使用新的公用证书替换我的Load Balancer上的现有公共证书,并且现有域将继续有效?

  • 需要续订的时候,所有域名/子域名从今天开始是90天,还是仅今天签署的新子域名为90天?

1 个答案:

答案 0 :(得分:8)

简单地说:您无法更新现有证书。一旦证书请求被签名,它就是不可变的。这是设计的。您对生成新CSR有正确的认识。

因此,请求一个新证书,其中所有这些名称都列在一个CSR中 - 包括[www.]mywebsite.com。在生成CSR时,我认为您可以重复使用旧证书使用的相同密钥对(当然,除非它已被妥协),但我自己并未真正检查过这些密钥对。

我不确定S3 - 只使用过一次而且非常短暂。如果您无法在/.well-known/acme-challenge/下放置文件以用于基于HTTP的验证,则应暂时更改这些文件(问题是这样的:您必须在每次“#dd; d”时打破它需要重新验证),或尝试DNS-based ACME validation(通过创建TXT DNS记录)。

颁发新证书后,将其部署到您使用旧证书的所有位置,以及您还需要新名称的位置。如果它存在(等待几天以确保安全),请考虑撤销旧证书,因为它已被新版本弃用,您不再需要使用它了。

您还可以生成多个证书 - 每个域一个(如果它们意图由不同的服务器分别使用,那么在安全方面这是一个好主意),但是使用Let&#39s的加密你现在不应该。问题是,Let's Encrypt has various rate limits关于他们可以向您发放多少证书,因此现在最好的方法是要求列出所有名称的单个新证书。因此,对于许多独立证书,您可能会发现自己处于证书过期但无法续订的情况。

但是,请考虑为每个SaaS服务公司或托管服务提供商生成单独的密钥,CSR和证书(具有多个名称)。即对于亚马逊而言是一个独立的,对于DigitalOcean而言是另一个。这个想法是,如果有一个托管服务提供商的资源遭到入侵(例如某人获得了对您的亚马逊帐户的访问权限)并且您的私钥被泄露,那么与其他人一起托管的资源仍然(希望)是安全的。

每个单独的证书,90天的使用寿命是独立的。您只需在发布后的90天内续订每个证书。

我们的加密目前不支持通配符证书,因此这些不是一个选项。我不知道任何免费提供通配符证书的CA,我认为它们的起价约为75-100美元/年。如果您的域名设置是静态的并且偶尔只更改一次,那么当您可以偶尔申请新的免费证书时(当您需要列出新名称时),可能没有太多理由支付,设置自动更新(提醒一次,看它是否有效)并忘掉它。 ;)