现在,如果我想使用 TLS 证书向 Vault 进行身份验证,我需要在客户端的文件系统中有一个包含证书的文件和一个包含私钥的文件。
在 Windows 上,我可以使用操作系统安全地存储证书和私钥。我知道 MacOS 上有 Keychain,我猜 Linux 也有一个或多个类似的系统。
我询问了支持人员,他们说目前没有办法做到这一点。有人知道在 Windows 上使用操作系统安装的证书的任何解决方法或其他方法吗?
这是供应商提供的 vault 客户端 vault.exe。我们的用例是在代理模式下使用供应商提供的 EXE 进行自动身份验证 - 请不要试图教我如何使用 API 编写自己的解决方案。如果那是我的用例,我就会这样做,有关此问题将直接发送到 StackOverflow。
答案1
哈希公司关于 Vault REST API:
除了 CLI 之外,Vault 的所有功能都可以通过 HTTP API 访问。事实上,大多数来自 CLI 的调用实际上都会调用 HTTP API。在某些情况下,Vault 功能无法通过 CLI 访问,只能通过 HTTP API 访问
因此,在 Windows 中你可以使用PowerShell Cmdlet InvokeRestMethod知道如何通过选项“CertificateThumbPrint”使用本地安装的证书
-证书指纹
指定有权发送请求的用户帐户的数字公钥证书 (X509)。输入证书的证书指纹。
证书用于基于客户端证书的身份验证。它们只能映射到本地用户帐户;它们不适用于域帐户。
要获取证书指纹,请使用 PowerShell Cert: 驱动器中的 Get-Item 或 Get-ChildItem 命令。