小白求助:Certificate for doesn't match any of the subject alternative alternati

MubaiClink 2018-11-08 11:27:31
小白求助,采用的是Https请求,请求大牛介绍下此错误到底是什么原因引起,百度多次无果,无奈只能请求各位大佬。
以下是代码以及报错截图:




@SuppressWarnings("unchecked")
public Map invokeVoiceCheckMethod(Map params) {
Map datas = (Map) params.get("data");
QltyChkCallLine voiceCheckData = new QltyChkCallLine();
String a = String.valueOf(datas.get("wtfId"));
voiceCheckData.setFileId(String.valueOf(datas.get("wtfId")));
voiceCheckData.setFileCodec(String.valueOf(datas.get("wtfVoicePath")));
voiceCheckData.setFilePath(String.valueOf(datas.get("wtfVoicePath")));
try {
Map data = transferVoiceData(voiceCheckData);
Map request = new HashMap();
request.put("cId", sceneCode);
List col = new ArrayList<String>();
col.add(data);
request.put("callList", col);
String jsonStr = JSONObject.fromObject(request).toString();
Map map = new HashMap();
map.put("data",jsonStr);
String path="src/main/resources/localhost.p12";
// String retJson= callRemoteService(url, jsonStr);
String retJson = send("https://10.xx.xx.xx:8057/imchat/aichat/xxxxxx", map,"UTF-8",new FileInputStream(new File(path)),"IMChat@2018");
// String retJson = doPost(url, jsonStr,"UTF-8",new FileInputStream(new File(path)),"IMChat@2018");
insertResultToDataBase(retJson, data);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}



public static String send(String url, Map<String, String> map, String encoding, InputStream certStream, String pwd) throws IOException {
String body = "";
SSLContext sslcontext = null;
try {
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(certStream, pwd.toCharArray());
// 相信自己的CA和所有自签名的证书
sslcontext = SSLContexts.custom().loadTrustMaterial(trustStore, new TrustSelfSignedStrategy()).build();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
//证书io流关闭
certStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}

// 设置协议http和https对应的处理socket链接工厂的对象
Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create().register("http", PlainConnectionSocketFactory.INSTANCE).register("https", new SSLConnectionSocketFactory(sslcontext)).build();

PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
HttpClients.custom().setConnectionManager(connManager);

//创建自定义的httpclient对象
CloseableHttpClient client = HttpClients.custom().setConnectionManager(connManager).build();

//创建post方式请求对象
HttpPost httpPost = new HttpPost(url);

//装填参数
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
if (map != null) {
for (Map.Entry<String, String> entry : map.entrySet()) {
nvps.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
}
}
//设置参数到请求对象中
httpPost.setEntity(new UrlEncodedFormEntity(nvps, encoding));

System.out.println("请求地址:" + url);
// System.out.println("请求参数:" + nvps.toString());

//设置header信息
//指定报文头【Content-type】、【User-Agent】
httpPost.setHeader("Accept", "application/json");
// httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");

//执行请求操作,并拿到结果(同步阻塞)
CloseableHttpResponse response = null;
try {
response = client.execute(httpPost);

//获取结果实体
HttpEntity entity = response.getEntity();
if (entity != null) {
//按指定编码转换结果实体为String类型
body = EntityUtils.toString(entity, encoding);
}
EntityUtils.consume(entity);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
//释放链接
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return body;
}


...全文
1742 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
十八道胡同 2018-11-08
  • 打赏
  • 举报
回复
问题分析:

颁发的证书是给制定域名的而非IP地址,因为服务器没有加入Public DNS,所以域名无法访问,我在调用接口时直接使用了IP地址,而不是域名。

问题解决:

在hosts配置文件中添加IP地址和域名的映射记录,在调用接口时使用域名进行调用,发现问题解决。

https://www.cnblogs.com/xusweeter/p/7659953.html
MubaiClink 2018-11-08
  • 打赏
  • 举报
回复
引用 1 楼 LCL_data 的回复:
问题分析: 颁发的证书是给制定域名的而非IP地址,因为服务器没有加入Public DNS,所以域名无法访问,我在调用接口时直接使用了IP地址,而不是域名。 问题解决: 在hosts配置文件中添加IP地址和域名的映射记录,在调用接口时使用域名进行调用,发现问题解决。 https://www.cnblogs.com/xusweeter/p/7659953.html
这个方法我试过了,修改hosts文件利用域名还是报一样的错误。
内容概要:本文档详细介绍了“南方数码房地一体内外业软件”的操作流程,涵盖从数据准备、外业调查、内外业数据对接,到内业数据处理与成果输出的完整工作链。主要包括调查底图制作(支持DWG、MDB、SHP及倾斜三维模型等多种数据源)、导出外业IDB工程文件、平板端外业调查(宗地与房屋核实、电子签章表确认、照片导出)、内外业数据对接(DB与照片数据导入),以及内业的宗地信息完善、界址属性设置、自然幢生成、房屋面积计算、户属性录入,并最终输出宗地图、房产分户图、各类报表及MDB数据库等成果。; 适合人群:从事农村房地一体权籍调查的测绘、不动产登记及相关地理信息行业的内业处理人员、外业调查员和技术管理人员,需具备基础GIS或CAD操作能力; 使用场景及目标:①指导用户系统完成从原始数据到不动产登记成果的全流程作业;②实现外业调查数据高效采集与内业自动化处理衔接,提升房地一体确权登记工作的标准化与效率; 阅读建议:建议结合实际项目按章节顺序操作,重点关注数据格式转换、IDB工程交互逻辑及成果图输出设置,配合软件界面逐步实践,确保各环节数据完整性与准确性。
内容概要:本文围绕“面向高精度电流控制的PMSM多参数PSO辨识模型研究”,结合Simulink仿真实现,系统探讨了在高性能电机控制背景下,如何利用粒子群优化算法(PSO)对永磁同步电机(PMSM)电流环的关键参数进行多参数协同辨识。研究通过建立PMSM的精确动态数学模型,设计基于PSO的参数辨识框架,实现了对电机电感、电阻、反电动势常数等核心参数的高效在线或离线辨识,有效提升了电流控制的精度与系统鲁棒性。文中详细阐述了PSO算法的实现机制,包括适应度函数构造、参数编码策略与收敛判据,并在Simulink中构建了完整的联合仿真平台,通过大量仿真实验验证了该方法相较于传统辨识技术在准确性、稳定性和适应性方面的显著优势,为高动态性能电机驱动系统的参数获取提供了可靠的技术路径。; 适合人群:自动化、电气工程、控制科学与工程等相关专业的研究生、科研人员及从事高性能电机驱动系统开发的工程师。; 使用场景及目标:①应用于高端制造、新能源汽车、航空航天等领域中对电流控制精度要求极高的PMSM控制系统开发;②作为智能优化算法(如PSO)在电机参数辨识领域应用的典型案例,服务于教学演示与学术研究;③为后续开展自适应控制、智能容错控制及多物理场耦合建模等前沿课题提供坚实的参数辨识基础和技术参考。; 阅读建议:读者应具备扎实的电机控制理论基础(如FOC矢量控制、现代控制理论)以及熟练的MATLAB/Simulink仿真能力,建议在学习过程中结合文中的仿真模型,动手复现PSO参数辨识的完整流程,深入分析算法参数设置对辨识结果的影响,从而全面掌握其工程应用精髓。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧