【问题标题】:vaultsharp tls auth failed - client certificate must be suppliedvaultsharp tls 身份验证失败 - 必须提供客户端证书
【发布时间】:2020-04-26 15:26:39
【问题描述】:

Vaultsharp 无法通过 TLS AUTH 方法使用 Vault 进行身份验证

Windows 10 上的 C# 代码,个人商店中的证书和密钥

环境窗口

X509Certificate2 clientCertificate = null;
X509Store store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certificateList =         
store.Certificates.Find(X509FindType.FindBySubjectName, "subject name", false);

    if (certificateList.Count > 0)
    {
        clientCertificate = certificateList[0];
    };
    store.Close();


// got clientCertificate here, it has private key as well

try
{
    IAuthMethodInfo authMethod = new CertAuthMethodInfo(clientCertificate);
    var vaultClientSettings = new VaultClientSettings("endpoint:8200", authMethod);
    IVaultClient vaultClient = new VaultClient(vaultClientSettings);
    Secret<Dictionary<string, object>> secret = null;
    Task.Run(async () =>
    {
        secret = await vaultClient.V1.Secrets.KeyValue.V1.ReadSecretAsync("dummy_app/dev/connection_strings");
    }).GetAwaiter().GetResult();

上面的代码抛出错误

{"errors":["必须提供客户端证书"]}

它应该返回秘密而不是抛出异常

【问题讨论】:

    标签: ssl vaultsharp


    【解决方案1】:

    请检查以下内容。

    1. 证书确实有私钥。 (对对象进行 HasPrivateKey 检查)通常,您使用密码从存储中读取私钥。我没有在上面看到,所以可能你拥有的是公钥。

    2. 请确保证书是具有完整链的有效证书。如果 Vault API(不是 VaultSharp)找不到父链,则会引发错误。

    3. 请检查 http 或 tcp 连接以查看证书是否真正附加。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 2014-03-31
      • 1970-01-01
      • 2021-02-21
      • 2019-06-27
      • 2011-04-09
      • 2013-10-07
      相关资源
      最近更新 更多