如何解决尝试使用.net Core和Linux的cassandra csharp驱动程序连接到Amazon密钥空间时的身份验证异常
我在亚马逊的钥匙空间中创建了一个钥匙空间(表),并试图将记录从其中获取到我的.net核心应用程序,该应用程序在ubuntu中运行。我提供了所需的所有内容,例如“ .pem”文件用户名,密码和aws文档Using a Cassandra .NET Core Client Driver to Access Amazon Keyspaces Programmatically
中提到的awsEndpoint但是当我运行代码并尝试与Amazon Keyspace连接时,它引发了一个异常“ 所有尝试查询的主机均失败(尝试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;");
解决方法
尝试将证书添加到linux truststore中。
keytool -import -alias cassandra -keystore cassandra_truststore.jks -file temp_file.der```
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。