Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 通过SSL卸载应用程序网关连接到Azure托管的ElasticSearch端点_.net_Azure_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest_Azure Marketplace - Fatal编程技术网 elasticsearch,nest,azure-marketplace,.net,Azure,elasticsearch,Nest,Azure Marketplace" /> elasticsearch,nest,azure-marketplace,.net,Azure,elasticsearch,Nest,Azure Marketplace" />

.net 通过SSL卸载应用程序网关连接到Azure托管的ElasticSearch端点

.net 通过SSL卸载应用程序网关连接到Azure托管的ElasticSearch端点,.net,azure,elasticsearch,nest,azure-marketplace,.net,Azure,elasticsearch,Nest,Azure Marketplace,我已经使用该模板在Azure中部署了ElasticSearch集群 我将其配置为SSL/TLS,以便通过HTTP层通过应用程序网关与Elasticsearch通信,一切正常,我可以登录到Kibana并查看集群节点的状态 问题是我无法从客户端通过Azure Application Gateway使用NEST.NET连接到ElasticSearch,它需要提交模板时提供的证书和密码,但当我设置模板时,我会得到“无法从传输连接读取数据”和“无法建立SSL连接,请参阅内部异常。”当我发送请求时 以下是我

我已经使用该模板在Azure中部署了ElasticSearch集群

我将其配置为SSL/TLS,以便通过HTTP层通过应用程序网关与Elasticsearch通信,一切正常,我可以登录到Kibana并查看集群节点的状态

问题是我无法从客户端通过Azure Application Gateway使用NEST.NET连接到ElasticSearch,它需要提交模板时提供的证书和密码,但当我设置模板时,我会得到“无法从传输连接读取数据”“无法建立SSL连接,请参阅内部异常。”当我发送请求时

以下是我从客户端连接到ElasticSearch时使用的代码:

    public IElasticClient Client { get; }

    public ElasticService(IConfiguration configuration)
    {
        var settings = new ConnectionSettings(new Uri(configuration["Elastic:Endpoint"]))
            .DefaultIndex("impression");
        settings.ClientCertificate(new X509Certificate2(@"C:\git\server.p12", "PASSWORD", X509KeyStorageFlags.Exportable));
        Client = new ElasticClient(settings);
    }

本例中的证书不用于Elasticsearch的证书身份验证,因为使用了
ClientCertificate
方法,但用于传输层安全(TLS)

TLS证书可以通过
ServerCertificateValidationCallback

var pool = new SingleNodeConnectionPool(new Uri(configuration["Elastic:Endpoint"]));

var settings = new ConnectionSettings(pool)
    .DefaultIndex(defaultIndex)
    .BasicAuthentication("elastic", "<password>")
    .ServerCertificateValidationCallback(
        CertificateValidations.AuthorityPartOfChain(
            new X509Certificate2(@"C:\git\server.p12", "PASSWORD"))
    );

var client = new ElasticClient(settings);
var-pool=newsinglenodeconnectionpool(新Uri(配置[“弹性:端点]));
var设置=新连接设置(池)
.DefaultIndex(DefaultIndex)
.基本认证(“弹性”、“弹性”)
.ServerCertificateValidationCallback(
CertificateValidations.AuthorityPartOfChain(
新的X509Certificate2(@“C:\git\server.p12”,“密码”))
);
var客户端=新的ElasticClient(设置);

根据传递给应用程序网关的证书是如何生成的,
CertificateValidations
提供了
AuthorityPartOfChain
AuthorityIsRoot
,具体取决于客户端配置的证书是链的一部分还是根证书。

我认为这取决于路径正确,但仍会引发相同的错误。我已将URI设置为,我确信我的两个密码和证书有效。我不明白发生了什么。我已测试了AuthorityPartOfChain和AuthorityIsRootIf,如果您直接点击应用程序网关公共IP并输入
弹性
基本身份验证详细信息,您是否获得
 200确定
响应?准确地说,我使用的是自签名证书。从浏览器(接受任何无效的证书警告)如何?感谢@Russ Cam,我成功地实现了这一点,我误读了文档。使用外部负载平衡器工作得非常好。