java - 如何修复证书中的主机名不匹配
问题描述
我正在使用 Unirest for Java 向 https 网站发出 HTTP 请求,但 SSL 证书有问题。异常消息 - javax.net.ssl.SSLException:证书中的主机名不匹配:
页面:www.ceskereality.cz
如果我在浏览器中打开它(我在 Windows 10 上使用 Google Chrome),它可以工作......
我试过这个,但它不工作
SSLContext sslcontext = SSLContexts.custom()
.loadTrustMaterial(null, new TrustSelfSignedStrategy())
.build();
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext,SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
CloseableHttpClient httpclient = HttpClients.custom()
.setSSLSocketFactory(sslsf)
.build();
Unirest.setHttpClient(httpclient);
解决方案
下载服务器证书并将其放入您的 cacerts 并重新启动您的 java 应用程序。
推荐阅读
- grails - Grails v3.3.9 GORM 缺陷 - 一对多与mappedBy,更新可能失败
- ios - 来自 HTML 5 网络播放器的 iOS 12 锁屏下一首歌曲
- c# - 返回泛型类型时出错(无隐式转换)
- regex - grep - q "$1[^_-]"
- excel - 如何修复#Value!我的 Excel 代码中的错误
- selenium - Chrome 72 现在在脚本完成后自动关闭
- php - 在 foreach 循环之前使用 array_splice
- java - AspectJ - 包中所有类的切入点,除了一个
- reactjs - 在 const 而不是状态的列表列表中反应设置状态
- scheme - 如何更新 Sheme 中的列表。我的意思是在一个预先存在的列表上构建项目,一次一个,使用汽车