gpt4 book ai didi

java - 如何忽略自签名证书并抑制对等未验证错误

转载 作者:行者123 更新时间:2023-11-30 04:31:13 26 4
gpt4 key购买 nike

我尝试向使用自签名证书的服务器发送 Https Post 请求,但收到异常并显示以下错误:对等方未经过身份验证

我用谷歌搜索发现问题的原因是服务器正在使用自签名证书。我怎样才能抑制这个错误?

我使用以下函数发送帖子请求:

public String sendPost(final String request, final String postData) throws ClientProtocolException, IOException  {
String result = null;
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(request);
ByteArrayEntity postDataEntity = new ByteArrayEntity(postData.getBytes());
httpPost.setEntity(postDataEntity);
CloseableHttpResponse response = httpclient.execute(httpPost);
try {
HttpEntity entity = response.getEntity();
result = EntityUtils.toString(entity);
EntityUtils.consume(entity);
} finally {
response.close();
}
return result;

}

我缺少什么来抑制这个错误?我不想 try catch 这个异常。我想正确配置它,以便接受自签名证书。我在用着Httpclient 4.1。

谢谢!

最佳答案

您在网上找到的这个问题的许多答案(包括 ufk 的答案)都可以,但一点也不安全,因为它们完全忽略自签名服务器证书。

这消除了 SSL 连接的大部分优势,并使您容易遭受中间人攻击。

您可能想要做的是信任特定的自签名服务器证书,而不是盲目接受任何服务器证书。

关键是在创建 SSL 上下文时将服务器证书链的副本放入信任存储中。

执行此操作的代码有点太长,无法在此处发布,但碰巧的是,我目前正在撰写一篇关于在 Android 上执行此操作的博客文章。该博文尚未发布,但示例代码可在 GitHub 上获取。 .

关于java - 如何忽略自签名证书并抑制对等未验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14608481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com