c# - 在 VaultSharp 库中,设置 VAULT_CACERT 环境变量的等价物是什么?
问题描述
我收到错误使用 C# 中的 VaultSharp 库从 Vault 服务请求机密时发送请求时出错。我可以从命令行获取我需要的访问令牌,因此我知道 Vault 地址和我的个人 Vault 令牌工作。
CLI 依赖于环境变量 VAULT_ADDR、VAULT_TOKEN 和 VAULT_CACERT。我看到 VaultSharpVaultClientSettings
使用前两个创建对象:地址和令牌信息——但我可以在 VaultSharp 的哪个位置指定 CA 证书路径?
这是我正在使用的代码,从https://github.com/rajanadar/VaultSharp/blob/master/README.md复制:
string vaultToken = Environment.GetEnvironmentVariable("VAULT_TOKEN");
VaultSharp.V1.AuthMethods.IAuthMethodInfo authMethod = new VaultSharp.V1.AuthMethods.Token.TokenAuthMethodInfo(vaultToken);
string vaultAddress = Environment.GetEnvironmentVariable("VAULT_ADDR");
var vaultClientSettings = new VaultSharp.VaultClientSettings(vaultAddress, authMethod);
VaultSharp.VaultClient vaultClient = new VaultSharp.VaultClient(vaultClientSettings);
string vaultRoute = Properties.Settings.Default.VaultRoute;
VaultSharp.V1.Commons.Secret<VaultSharp.V1.Commons.SecretData> kv2Secret = await vaultClient.V1.Secrets.KeyValue.V2.ReadSecretAsync(vaultRoute);
正是这最后一条语句ReadSecretAsync
引发了错误。
非常感谢您的帮助!
解决方案
VaultSharp 中没有等效的 VAULT_CACERT。VaultSharp 希望您的 Vault URL 具有受信任的 SSL 证书。如果没有,您将在建立握手时收到 TLS 错误。在非生产环境中,人们通常使用以下代码段来解决它。
ServicePointManager.ServerCertificateValidationCallback +=
(sender, cert, chain, sslPolicyErrors) => true; // or do specific checks
推荐阅读
- javascript - 如何验证 IP 地址以确保用户在四部分中输入 3 位数字?
- ios - NSAttributed 字符串文档类型问题
- angular - 将一系列嵌套的 Promise 转换为 @Effect
- mapping - 什么是使用mapc的现实例子?
- java - 解组 XML 并存储到 Multimapping
- r - 捕获下一个方法的输出
- regex - 在bash中匹配单词后的一行中打印特定字符串
- r - 使用带有投影坐标系的 dist2isobath 函数(marmap 包)时出现问题
- php - 如何对单选按钮中的选定值求和并传递给提交
- c# - C#,Windows 应用程序,绘制一个边为 N 的正方形