我正在为我的家庭内部网络创建一个自托管 CA,作为一个业余项目,也是为了学习一些新东西。我正在使用 Smallstep 的开源step-ca
和step
CLI。
创建 CA 后,下一步当然是将其安装到root_ca.crt
将与之交互的设备上。 Smallstep文档提供了两种方法(粗体部分是我的)
如果你在生产环境中使用证书颁发机构进行 TLS 认证,明确配置您的 ACME 客户端以仅信任您的根证书是一个更好的选择。您将通过以下示例了解此方法的工作原理。您可以在此处找到其他几个示例。
如果您在预生产中模拟 Let's Encrypt,则安装根证书是更真实的生产模拟。安装根证书后,无需进行其他客户端配置。
我觉得这两段话有点矛盾。第一个选项“更好”,但第二个选项“更现实”。
为什么将 ACME 客户端配置为仅信任我的根证书是更好的选择?
使用示例certbot
:sudo REQUESTS_CA_BUNDLE=<path to root certificate> certbot certonly -d <domain> --server <URL of my CA>
答案1
该页面还指出
大多数 ACME 客户端默认连接到 Let's Encrypt 的 CA。
配置 ACME 客户端以信任您的根证书,以及您的根证书仅有的提供了一些额外的保证。如果您的根 CA 私钥是安全的,当服务器受到威胁并使用来自其他 CA 的证书时,请求将失败。