当前位置: 首页 > 面试题库 >

结合使用Elasticsearch Java REST API和自签名证书

饶骁
2023-03-14
问题内容

我想使用Java REST API(RestHighLevelClient)通过HTTPS与Elasticsearch
5.6服务器通信。但是,服务器的证书是自签名的,当我尝试连接时,它将引发SSLHandshakeException。

有没有一种方法可以配置REST客户端以接受自签名证书?


问题答案:

我使用自定义Java密钥库来完成此工作。这是我的代码

CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));

final SSLContext sslContext = SSLContexts.custom()
        .loadTrustMaterial(new File("my_keystore.jks"), keystorePassword.toCharArray(),
            new TrustSelfSignedStrategy())
        .build();


RestClient client = RestClient.builder(new HttpHost(host, port, scheme)).setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder
        .setDefaultCredentialsProvider(credentialsProvider)
        .setSSLContext(sslContext)
).build();

为了创建密钥库,我通过Firefox下载了该域的证书,并使用:

keytool -import -v -trustcacerts -file my_domain.crt -keystore my_keystore.jks -keypass password -storepass password


 类似资料:
  • 问题内容: 我的任务是实现一个定制/独立的Java Web服务器,该服务器可以在同一端口上处理SSL和非SSL消息。 我已经实现了NIO服务器,并且对于非SSL请求,它可以很好地工作。我在SSL方面花了很长时间,可以真正使用一些指导。 到目前为止,这是我所做的。 为了区分SSL消息和非SSL消息,我检查了入站请求的第一个字节,看看它是否是SSL / TLS消息。例: 在parseTLS()方法中,

  • 我有一个托管REST回显服务的库伯内特斯集群(AKS)。该服务通过HTTP运行良好。我正在使用NGINX入口路由流量。我现在想通过HTTPS和mTLS设置此服务,因此强制客户端指定证书以能够与回显服务通信。这是一个POC,所以我使用自签名证书。 我需要设置哪些Kubernetes组件才能实现这一点?我阅读了NGINX文档,但无法理解是否需要在Kubernetes集群中创建证书颁发机构/证书管理器,

  • 我的手被https、ssl、PKI之类的东西弄得脏兮兮的。对于自签名证书,有一点我不太理解。假设我想创建一个自签名证书,并在我们想要建立安全连接时将其发送给我的朋友。 所以步骤是: 创建一个私钥。 创建一个公钥。 用我的公钥在证书上签名。 因此,当我的朋友得到我的证书时,他必须验证他得到的证书是我的,他需要解密数字签名。但为了解密和验证他必须拥有我的私钥。所以,我有点困惑。

  • 我正在将服务迁移到minikube上的kubernetes集群中,这些服务在加载时需要自签名证书,通过NodePort访问服务可以很好地工作,并需要浏览器中的证书(下图),但是通过入口主机访问(域在/etc/hosts中本地修改)为我提供了一个由Acme提供的kubernetes入口控制器伪造的证书,并且跳过了我的自签名证书,没有任何消息。 SSLs应该在应用程序中解密,而不是在入口中解密,并且t

  • 我正在研究SAML2 SSO的Idp端,作为Idp,我们应该向SP发布一个断言,它将由Idp发起。断言中有一个名为x509certificate的字段。我的第一个问题是,该字段是公钥本身还是由CA(证书颁发机构)签名的公钥?我的第二个问题是,如果它是一个由CA签名的公钥,那么自签名是安全的还是由真正的CA签名更好?我的第三个问题是,我们向SP提供Idp元数据更好,还是在任何断言请求中都有证书更安全

  • 我正在为嵌入式Linux设备添加HTTPS支持。我尝试通过以下步骤生成自签名证书: 这是可行的,但我得到一些错误,例如,谷歌Chrome: