在使用VaultSharp库从C#服务中请求机密时,发送请求时发生了错误。我可以从命令行获得我需要的访问令牌,这样我就知道了Vault地址和我个人的Vault令牌工作。
CLI依赖于环境变量VAULT_ADDR、VAULT_TOKEN和VAULT_CACERT。我看到VaultSharp使用前两个:地址和令牌信息创建VaultClientSettings对象--但是在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抛出了错误。
非常感谢你的帮助!
发布于 2021-02-12 05:56:33
在VAULT_CACERT中没有VaultSharp的等价物。VaultSharp希望您的Vault URL有一个可信的SSL证书。如果没有,您将在建立握手时得到TLS错误。在非prod环境中,人们通常使用下面的代码片段来解决这个问题。
ServicePointManager.ServerCertificateValidationCallback +=
(sender, cert, chain, sslPolicyErrors) => true; // or do specific checkshttps://stackoverflow.com/questions/66160937
复制相似问题