工作中使用https请求,本地调用正常,放到服务器端运行失败,报错为java.security.cert.Certificate:No subject alternative DNS name matching api.exmail.qq.com found

一般错误原因为https证书验证失败

解决方法可以在服务器端导入对应证书,这边使用绕过证书验证的方式解决

get请求:

public String getconnbyget(String url){StringBuilder result = new StringBuilder();try {URL u=new URL(url);HttpsURLConnection huconn=(HttpsURLConnection) u.openConnection();huconn.setHostnameVerifier(new CustomizedHostnameVerifier());//连接服务器  huconn.connect();  // 取得输入流,并使用Reader读取  BufferedReader in = new BufferedReader(new InputStreamReader(huconn.getInputStream(), "UTF-8"));String line;while ((line = in.readLine()) != null) {result.append(line);}} catch (IOException e) {e.printStackTrace();}finally{try{if(in!=null){in.close();}}catch(IOException ex){ex.printStackTrace();}}return result.toString();}

post请求:

public String gethttpsconnbypost(String url,Map headMap){StringBuilder result = new StringBuilder();try {//创建地址对象URL u=new URL(url);//获取HttpURLConnection链接对象HttpsURLConnection huconn=(HttpsURLConnection) u.openConnection();//绕过证书验证,验证主机名和服务器验证方案的匹配是可接受的huconn.setHostnameVerifier(new CustomizedHostnameVerifier());// 发送POST请求必须设置如下两行,如果打算使用 URL 连接进行输出,则将 DoOutput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 falsehuconn.setDoOutput(true);//如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 truehuconn.setDoInput(true);//设置POST方式连接huconn.setRequestMethod("POST");//创建头信息map迭代器Iterator it = headMap.keySet().iterator();//设置请求头配置信息while (it.hasNext()) {String key = it.next();String value = headMap.get(key);huconn.setRequestProperty(key, value);}//连接服务器  OutputStreamWriter out = new OutputStreamWriter(huconn.getOutputStream(),"UTF-8");//写入请求体out.write(data);out.flush();out.close();// 取得输入流,并使用Reader读取,设定字符编码  BufferedReader in = new BufferedReader(new InputStreamReader(huconn.getInputStream(), "UTF-8"));String line;while ((line = in.readLine()) != null) {result.append(line);}} catch (IOException e) {e.printStackTrace();}//关闭输入流finally{try{if(in!=null){in.close();}}catch(IOException ex){ex.printStackTrace();}}return result.toString();}

验证证书类:

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLSession;public class CustomizedHostnameVerifier implements HostnameVerifier{//重写验证方法@Override  public boolean verify(String arg0, SSLSession arg1)  {  //所有都正确return true;  }
}

更多腾讯接口开发可以关注本人微信公众号查看

java.security.cert.Certificate:No subject alternative DNS name matching api.exmail.qq.com found.解决方法相关推荐

  1. Android Studio升级后 出现在No subject alternative DNS name matching services.gradle.org found.

    Error:No subject alternative DNS name matching services.gradle.org found. 解决办法: 编辑 gradle/wrapper/gr ...

  2. imageloader 的 java.security.cert.CertPathValidatorException

    最近使用imageloader 发现ssl问题 (java.security.cert.CertPathValidatorException) 网上找了个方法,亲测通过,如下: universalim ...

  3. sqlserver 项目中连接失败,驱动程序无法通过使用安全套接字层(SSL) 与 java.security.cert.CertificateException

    问题一:驱动程序无法通过使用安全套接字层(SSL) 注意: 有两个 jre 文件夹,一个是 jdk内包含的,一个是 单独的 jre 解决办法:把jdk下面的\jre\lib\security下面的ja ...

  4. java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

    Android 忽略Https请求认证 新建一个工具类 package com.gbom.vms_mcu.util;import java.security.SecureRandom; import ...

  5. java.security.cert.CertificateException: No name matching IP found

    java.security.cert.CertificateException: No name matching localhost found 解释:安全证书异常,IP地址找不到 解决方案如下:程 ...

  6. java.security.cert.CertificateException: No name matching https证书验证不通过

    1.报错信息 1 java.security.cert.CertificateException: No name matching api.weibo.com found; nested excep ...

  7. CAS部署错误3:java.security.cert.CertificateException: No name match

    javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching casse ...

  8. Caused by: java.security.cert.CertPathValidatorException: timestamp check failed

    客户端在连接Server端https的时候出现了 以下错误, 12-27 17:52:45.976: W/System.err(10361): Caused by: java.security.cer ...

  9. java derby 用户安全_Java 7u51安全权限变化,运行derby server被拒,解决方法

    本文参考的文章:外链网址已屏蔽 今天运行Derby数据库的服务器时,出现以下问题: access denied (".SocketPermission" "localho ...

最新文章

  1. 01屏幕增强 sap_SAP (MM01 MM02 MM03)屏幕增强
  2. 剑指OFFER之用两个栈实现队列(九度OJ1512)
  3. MySQL 事务的实现原理,写得太好了!
  4. CVTE软件技术支持面试总结
  5. ORACLE清空数据库中所有表中的数据
  6. 2021数学建模学习笔记
  7. 软件测试用什么cpu,给你的CPU做体检!主流CPU测试软件使用宝典
  8. 计划行为理论(TPB,Theory of Planned Behavior)
  9. masked_fill_() - masked_fill() - v1.5.0
  10. 【洛谷】P1488 肥猫的游戏(博弈论+全网最详细!!!)
  11. 集成学习(Bagging和Boosting)
  12. 部署测试fabric1.0及源码解析
  13. 一篇文章搞懂MongoDB数据库
  14. Kubernetes调度之亲和性和反亲和性
  15. 基于canvas实现波浪式绘制图片
  16. PyOpenPose编译与使用
  17. HPC应用软件安装《hmmer》
  18. 虚拟服务器怎么连uk,rustUKn建造服务器指令
  19. 基于springboot+mybatis设备管理后台,可直接上线项目!
  20. Google File System中文翻译

热门文章

  1. 未忘初心,未得始终——记搜狗两余载
  2. 费米估算 | 产品面试中的估算问题解法
  3. 怎么关闭vivo系统自检_vivo手机越用越卡怎么办?只要关闭这3个设置,就能轻松解决...
  4. Springboot 使用装饰器模式,快看,它装起来了
  5. 【每天学一点 - 算法篇 - 排序 - 希尔排序】
  6. MBA管理精粹70则
  7. c语言矩阵求伪逆算法pinv,pinv--求矩阵的伪逆矩阵
  8. 某程序员转行前的感慨nbsp;告别程序员…
  9. virtualbox虚拟机和主机不在同一网段,虚拟机访问互联网网络配置
  10. 小红书20230326暑假实习笔试