我想使用 letsencrypt 为 iLO Web 控制台(iLO 是 HP 服务器的管理引擎)生成适当的证书。据我所知,没有办法将私钥安装到 iLO 中,因此我从 iLO 生成了 CSR。它包含以下字段:
Requested Extensions:
X509v3 Subject Alternative Name:
DNS:ilo.example.com, IP Address:192.168.1.11
我发现没有办法从 CSR 中排除 IP 地址部分。我不需要它,我只会使用 ilo.example.com。现在我发布了
certbot certonly --manual --staging --preferred-challenges=dns --csr csr
命令,完成DNS验证,但出现错误:
An unexpected error occurred:
The request message was malformed :: Error creating new cert :: CSR contains one or more IP address fields
Please see the logfiles in /var/log/letsencrypt for more details.
据我所知,CSR 是由私钥签名的,因此我无法编辑它。我可以要求 letsencrypt 忽略 IP 地址并仅为 ilo.example.com 颁发证书吗?或者还有其他方法吗?
答案1
- 生成 CSR
- 向 LE 提交 CSR
- 安装结果证书
答案2
请用我的 公用事业处理 CSR 生成和 DNS 挑战(此处仅限 GoDaddy)。
该实用程序需要 Powershell 并由三个脚本组成,其中一个是 Certbot 本身。
- 请求 iLO 生成 CSR 并下载的脚本
- Certbot 将在 CSR 上请求证书
- 实用程序更新 GoDaddy DNS 以确认 DNS 挑战
请注意,使用 HPE iLO 只能执行 DNS 质询。
我编写的脚本利用 HPE iLO API 请求生成不带 IP 地址的 CSR。它在我的两台服务器上都有效。
披露。我制作了这个工具,并在 GitHub 上根据 MIT 许可证发布