ES配置https认证和用户密码授权的方法

这篇具有很好参考价值的文章主要介绍了ES配置https认证和用户密码授权的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

   最近由于安全需要,需要对使用es组件的部分升级https认证和用户密码通讯,调整原有方法如下:文章来源地址https://www.toymoban.com/news/detail-644050.html

 RestClientBuilder clientBuilder = RestClient.builder(new HttpHost(host, port, elasticsearchProtocol));
        // 1. 设置公共请求头,每个请求都会带上这个请求头
        setDefaultHeaders(clientBuilder);
        // 3. 设置节点失败监听器
        setFailListener(clientBuilder);
        // 4. 设置节点选择器
        clientBuilder.setNodeSelector(NodeSelector.SKIP_DEDICATED_MASTERS);
        // 5. 配置HTTP异步请求ES的线程数
        setHttpClientConfigCallback(clientBuilder);
        // 6. 配置连接超时和套接字超时
        setRequestConfigCallback(clientBuilder);
        if ("true".equals(esSecurityEnable)) {
            //启用es加密
            // 8. 配置通信加密 +  安全认证
            setSSLContext(clientBuilder);
        }
        return new RestHighLevelClient(clientBuilder);
    private void setSSLContext(RestClientBuilder clientBuilder){

        try{
            SSLContext sslContext = SSLContext.getInstance("TLS");
            sslContext.init(null, new TrustManager[] { new X509TrustManager() {
                @Override
                public void checkClientTrusted(X509Certificate[] certs, String authType) {}
                @Override
                public void checkServerTrusted(X509Certificate[] certs, String authType) {}
                @Override
                public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; }
            }}, null);

            // 认证相关配置
            CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
            credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(esUserName, esPass));

            clientBuilder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                @Override
                public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                    return httpClientBuilder.
                            setDefaultCredentialsProvider(credentialsProvider).
                            setSSLContext(sslContext).
                            setSSLHostnameVerifier(new HostnameVerifier() {
                                @Override
                                public boolean verify(String hostname, SSLSession session) {
                                    // TODO Auto-generated method stub
                                    return true;
                                }
                            });
                }
            });
        }catch (Exception e){
            System.out.println("设置SSL正式错误!");
            e.printStackTrace();
        }
    }

到了这里,关于ES配置https认证和用户密码授权的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ES开启用户登录认证

    ES开启用户登录认证 1.修改elasticsearch.yml 配置文件 添加如下配置 注意xpack.security.transport.ssl.keystore.path和xpack.security.transport.ssl.truststore.path要改成绝对路径。 2.生成证书; 证书会生成在config目录下,证书文件名为 elastic-certificates.p12 然后配置elastic-certificates.p12的文件权限 3、重

    2024年02月12日
    浏览(39)
  • 6、ES单机设置用户名密码、集群设置用户名密码、es-head登录、如何去掉密码

    在配置文件中添加如下参数cat config/elasticsearch.yml: 关闭es服务如果服务启动(kill进程id) 启动es服务 待服务启动完成,且能正常访问后,执行 集群此时是启动状态 elasticsearch-head查看 通过浏览器查看 http://192.168.180.45:9200/_cat/nodes?v 进入主节点的bin目录下执行 再次在bin目录输

    2024年04月26日
    浏览(53)
  • 通过docker安装es,并且设置安全权限(用户名和密码)_docker es 设置用户名和密码

    cluster.name: “docker-cluster” network.host: 0.0.0.0 xpack.security.enabled: true  xpack.security.transport.ssl.enabled: true 3、进入容器内 docker exec -it elasticsearch /bin/bash 4、cd /bin 5、可以进行设置密码(下面几步都要输入密码) 6、重新启动docker 7、浏览器访问es 自我介绍一下,小编13年上海交大毕业

    2024年04月22日
    浏览(50)
  • ES开启密码安全认证后,elastichd的连接方式

    ElasticHD 是一款 ElasticSearch的可视化应用。不依赖ES的插件安装,更便捷;导航栏直接填写对应的ES IP和端口就可以操作Es。 http://user:password@host:port 官方提供连接方式

    2024年02月11日
    浏览(46)
  • Elasticsearch(ES6)------(4) ES设置用户名密码访问

     Elasticsearch(ES)             (1) 下载、安装+kibana 下载                  (2) 本机多节点启动+ElasticSearch head插件使用              (3) 索引、文档概念和索引CRUD             (4) ES设置用户名密码访问             (5)kibana的es查询、mysql查询转换和对应ja

    2024年02月09日
    浏览(59)
  • ES设置用户名和密码

    Elasticsearch示例版本:7.9.2 一、设置密码 1.需要在配置文件中开启x-pack验证, 修改config目录下面的elasticsearch.yml文件,在里面添加如下内容,并重启es. 2,进入es的安装根目录bin下,E:softwareeselasticsearch-7.9.2bin 执行设置用户名和密码的命令,这里需要为4个用户分别设置密码,ela

    2024年02月11日
    浏览(58)
  • ES添加用户名和密码

    注:Elasticsearch示例版本:7.6.2 1. 修改配置 需要在配置文件中开启x-pack验证, 修改config目录下面的elasticsearch.yml文件,在里面添加如下内容,并重启es. 2. 设置密码 进入es的安装根目录bin下,/usr/local/elasticsearch-7.6.2/bin 执行设置用户名和密码的命令,这里需要为4个用户分别设置密码

    2024年01月20日
    浏览(60)
  • ES修改用户名和密码

    修改config目录下面的elasticsearch.yml文件,在里面添加如下内容,并重启es. 执行 elasticsearch-setup-passwords interactive 设置用户名和密码的命令,为以下几个用户分别设置密码,elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.

    2024年02月11日
    浏览(54)
  • 项目实战——参数配置化Spark将Hive表的数据写入需要用户名密码认证的ElasticSearch(Java版本)

    项目实战——将Hive表的数据直接导入ElasticSearch    此篇文章不用写代码,简单粗暴,但是相对没有那么灵活;底层采用MapReduce计算框架,导入速度相对较慢! 项目实战——Spark将Hive表的数据写入ElasticSearch(Java版本)    此篇文章需要Java代码,实现功能和篇幅类似,直接

    2023年04月08日
    浏览(57)
  • 【Docker】docker | es | es配置密码 | elasticsearch配置密码

            1、docker部署es         2、docker默认无密码,现在需求需要增加安全性,需要增加密码 1、启动es镜像,参考 2、修改es配置 3、开启安全验证   3、重启docker 说明: 容器ID 4、进入到容器 5、生成证书1 说明: 一直回车即可 6、生成证书2 7、将证书移动到config 8、生

    2024年02月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包