如何使用自控证书为 AWS S3 终端节点启用 TLS?



我们有一个将数据上传到 AWS S3 终端节点的物联网设备。要启用 TLS(安全 HTTPS 传输(,需要将 S3 终端节点证书添加到物联网设备 SD 卡。

如果我们在浏览器中添加 URL(https://s3.amazonaws.com/bucketname(,单击锁定图标并导出 SD 卡的根 CA 证书,这将正常工作。但是,亚马逊可能会决定随着时间的推移更改此设置,恕不另行通知 - 我们无法向IoT SD卡添加超过1个证书。

为了解决这个问题,我们一直在寻找使用我们控制的证书在 S3 终端节点上启用 TLS 的选项 - 这样除非我们决定这样做,否则它不会更改。但是,我们不确定什么是正确的解决方案。

我们已经了解了 AWS CloudFront,向终端节点添加自定义域并添加证书。但我们不确定这是否有效 - 以及它是否是最佳解决方案。欢迎任何意见。

您可以放心,AWS 会为关键服务终端节点(如 s3.amazonaws.com(提供有关 CA 根证书更改的大量提前通知。这种类型的更改将对终结点的所有使用者产生重大的维护影响。在没有适当通知客户的情况下,他们根本无法更改 CA 根证书。

因此,此使用案例的最简单解决方案是使用标准 AWS 终端节点,并在将来替换 CA 根时,将 CA 证书的任何升级作为设备上的维护任务进行处理。

自定义域 + cloudfront 是在您自己的域上使用您自己的 SSL 证书的有效解决方案。但请注意,它还将具有一个 CA 根证书,该证书将受未来潜在根证书更新的约束 - 与默认终结点相同。因此,您真的不会在那里获得对 CA 更改的任何更多独立性。因此,Cloud Front 解决方案只会增加复杂性,对您的使用案例没有真正的优势。但是,如果您确实想运行自己的私有 CA 并控制自己的根 CA 证书的到期日期,则可以使用 AWS 证书管理器私有证书颁发机构。请参阅 https://aws.amazon.com/certificate-manager/private-certificate-authority/

仅供参考,S3 终端节点上的根 CA 证书将在 5 年 4 个月后过期。它使用由巴尔的摩CyberTrust Root颁发的DigiCert Baltimore CA-2 G2证书,并使用良好的强加密,例如密钥长度和签名算法。我不希望AWS有任何理由在到期日期之前替换该证书。

有关 AWS S3 证书的 SSL 分析,请参阅 https://www.ssllabs.com/ssltest/analyze.html?d=s3.amazonaws.com。

最新更新