0

我在亚马逊密钥空间中创建了一个密钥空间(表),并试图将记录从它获取到我在 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;");
4

1 回答 1

1

尝试将证书添加到 linux 信任库。

keytool -import -alias cassandra -keystore cassandra_truststore.jks -file temp_file.der```
于 2020-09-15T21:04:40.410 回答