我正在尝试让 Hashicorp Vault UI 使用 HTTPS。我有一个来自 Godaddy 的证书,它在 apache2 的同一台机器上工作。
我的 vault.hcl 文件如下所示
# HTTPS listener
listener "tcp" {
address = "0.0.0.0:8200"
tls_cert_file = "/godaddy_certs/123xxx321.crt"
tls_key_file = "/godaddy_certs/privatekey.key"
tls_disable = "false"
}
但是我在here读到我不能简单地使用Godaddy提供的证书。该参考资料如下:
要将侦听器配置为使用 CA 证书,请将主证书和 CA 证书连接在一起。主证书应首先出现在组合文件中。
现在我假设这里所说的“主证书”是Godaddy提供的123xxx321.crt文件。 Godaddy 还包含一个 gd_bundle-g2-g1.crt 文件。
所以我想我可以创建一个名为 myVaultCert.crt 的新文件并从 123xxx321.crt 复制 PEM 字符串,如下所示:
-----BEGIN CERTIFICATE-----
MIIG ... /0I=
-----END CERTIFICATE-----
到顶部位置,然后从 gd_bundle-g2-g1.crt 文件中复制 PEM 字符串。
所以 myVaultCert.crt 现在看起来像
-----BEGIN CERTIFICATE-----
MIIG36F ... /0I=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEADC ... v08=
-----END CERTIFICATE-----
我将 vault.hcl 配置更改为如下所示:
# HTTPS listener
listener "tcp" {
address = "0.0.0.0:8200"
tls_cert_file = "/godaddy_certs/myVaultCert.crt"
tls_key_file = "/godaddy_certs/privatekey.key"
tls_disable = "false"
}
当我运行
sudo systemctl start vault.service
我得到以下返回:
vault.service 的作业失败,因为控制进程退出并显示错误代码。 有关详细信息,请参阅“systemctl status vault.service”和“journalctl -xe”。
当我检查
journalctl -xe
我看到这个
初始化 tcp 类型的侦听器时出错:加载 TLS 证书时出错:解码的 PEM 为空
所以我去了 Godaddy,看到有一个 repository,其中包含指向根证书和捆绑包等的链接。我试图复制提供的证书,然后在该存储库中找到几个证书,但它们都给了我同样的错误.
我必须连接哪些证书才能将 Godaddy 证书与 Hashicorp Vault 一起使用?