使用Gremlin.net从本地windows机器连接到AWS Neptune



我正在关注亚马逊关于访问图小精灵dotnet的文档并尝试在通过EC2实例通过SSH隧道连接到Neptune的本地windows机器上运行它
我已经用gremlin控制台测试了SSH隧道,它运行良好
在EC2实例上运行程序也可以,但当在本地windows计算机上运行程序时,我会遇到以下异常,因为Neptune的证书需要添加到受信任的证书中:

System.Net.WebSockets.WebSocketException (0x80004005): Unable to connect to the remote server ---> 
System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner 
exception. ---> System.Security.Authentication.AuthenticationException: The remote certificate is 
invalid according to the validation procedure.

我正在寻找如何在Gremlin中做到这一点。净3.4.6(优选C#(。

  • 在访问图gremlin控制台从#6导入证书作为受信任的根证书也没有帮助

您需要这样做:

  1. 以管理员身份打开cmd.exe
  2. notepad c:windowssystem32drivershosts
  3. 添加一行127.0.0.1 <your neptune cluster endpoint just the name without port>
  4. 保存文件
  5. 现在尝试运行。再次输入网络代码

这是因为您很可能正在连接到localhost,并且证书是为集群的主机名签名的,因此存在不匹配。

另一个选项是对GremlinClient构造函数使用webSocketConfiguration参数,并使用RemoteCertificateValidationCallback进行手动检查
由于存在明显的安全风险,您应该非常小心地进行证书验证。

var webSocketConfiguration = new Action<ClientWebSocketOptions>(options => {options.RemoteCertificateValidationCallback=(o, c, ch, er) => Test and return true if certificate is valid;});
var gremlinServer = new GremlinServer(endpoint, 8182, enableSsl: true );
var gremlinClient = new GremlinClient(gremlinServer, webSocketConfiguration: webSocketConfiguration);

相关内容

  • 没有找到相关文章

最新更新