我在亚马逊密钥空间中创建了一个密钥空间(表),并试图将记录从它获取到我在 ubuntu 中运行的 .net 核心应用程序。我提供了所需的所有内容,例如“.pem”文件用户名、密码和 awsEndpoint 作为在 aws 文档中提到Using a Cassandra .NET Core Client Driver to Access Amazon Keyspaces Programmatically
但是,当我运行代码并尝试连接亚马逊密钥空间时,它会引发异常“所有主机尝试查询失败(尝试 3.6.70.143:9142: AuthenticationException '身份验证失败,请参阅内部异常。') ”。
但相同的代码在 Windows 环境中执行时可以正确执行并返回所需的结果。
X509Certificate2Collection certCollection = new X509Certificate2Collection();
X509Certificate2 amazoncert = new X509Certificate2(@"./Security/AmazonRootCA1.pem","");
var userName = "username";
var pwd = "password";
certCollection.Add(amazoncert);
var awsEndpoint = "cassandra.ap-south-1.amazonaws.com" ;
try
{
var cluster = Cluster.Builder()
.AddContactPoints(awsEndpoint)
.WithPort(9142)
.WithAuthProvider(new PlainTextAuthProvider(userName, pwd))
.WithSSL(new SSLOptions().SetCertificateCollection(certCollection))
.Build();
var session = cluster.Connect();
var rs = session.Execute("select * from tutorialkeyspace.tutorialtable;");