首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >必须提供vaultsharp和失败的客户端证书。

必须提供vaultsharp和失败的客户端证书。
EN

Stack Overflow用户
提问于 2019-05-16 22:37:41
回答 1查看 1.1K关注 0票数 0

对于TLS AUTH方法,Vaultsharp无法用保险库进行认证。

个人商店中windows 10、cert和key上的C#代码

环境窗口

代码语言:javascript
复制
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();

以上代码是抛出错误。

{“错误”:“必须提供客户端证书”}

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

EN

回答 1

Stack Overflow用户

发布于 2020-04-26 07:23:55

请检查以下内容。

  1. 证书确实有私钥。(HasPrivateKey检查对象)通常使用密码从商店读取私钥。我看不出上面的情况,所以也许你拥有的是一个公钥。
  2. 请确保证书是具有完整链的有效证书。如果Vault API (不是VaultSharp)找不到父链,它将抛出一个错误。
  3. 请检查http或tcp连接,以确定证书是否真正附加。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56177429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档