解决邮件javax.mail发送邮件的问题unable to find valid certification path to requested target

Error(12) 解决javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 温馨小提示:本文基于jdk8环境 错误日志如下: 网上说:这是由于jdk安全性机制而导致访问https会报错 javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.Alerts.getSSLException(Alerts.java:154. 阅读详情

今天做项目时,困扰了我很长时间的邮件发送失败的问题终于被我找到啦!通过报错日志看到是PKIX path building failed ,最主要的报错还是unable to find valid certification path to requested target,我上网查了很多资料有的说是被杀毒软件拦截啦,我把360软件全部停止后还是不行,有的说没有相应的证书,但是也没有给出相应的证书,非常不解。后来终于找到了一篇文章靠点谱可以给出相应证书的生成,抱着试试看的态度试了试,发现问题解决啦!

引用@阿飞的文章如下:来源: http://blog.youkuaiyun.com/faye0412/article/details/6883879

这两天在twitter服务器上忽然遇到这样的异常:

e: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 

经过检查确认,完整的异常信息应该如下:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

后来到twitter开发者网站上去看到了也有人遇到了类似的问题,链接如下:https://dev.twitter.com/discussions/533

但是都没说明具体的解决方法,郁闷啊!!

在oracle某一博客上说是可以这样解决的:http://blogs.oracle.com/gc/entry/unable_to_find_valid_certification

但是悲催的是那个java类已经无法下载了。。。。历经N次的google,终于找到该文件了,不敢独享,记录于此。


问题的根本是:

缺少安全证书时出现的异常。

解决问题方法:

将你要访问的webservice/url....的安全认证证书导入到客户端即可。


以下是获取安全证书的一种方法,通过以下程序获取安全证书:

[java]  view plain  copy
  1. /* 
  2.  * Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved. 
  3.  * 
  4.  * Redistribution and use in source and binary forms, with or without 
  5.  * modification, are permitted provided that the following conditions 
  6.  * are met: 
  7.  * 
  8.  *   - Redistributions of source code must retain the above copyright 
  9.  *     notice, this list of conditions and the following disclaimer. 
  10.  * 
  11.  *   - Redistributions in binary form must reproduce the above copyright 
  12.  *     notice, this list of conditions and the following disclaimer in the 
  13.  *     documentation and/or other materials provided with the distribution. 
  14.  * 
  15.  *   - Neither the name of Sun Microsystems nor the names of its 
  16.  *     contributors may be used to endorse or promote products derived 
  17.  *     from this software without specific prior written permission. 
  18.  * 
  19.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 
  20.  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
  21.  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  22.  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
  23.  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
  24.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
  25.  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
  26.  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
  27.  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
  28.  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
  29.  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  30.  */  
  31.   
  32. import java.io.BufferedReader;  
  33. import java.io.File;  
  34. import java.io.FileInputStream;  
  35. import java.io.FileOutputStream;  
  36. import java.io.InputStream;  
  37. import java.io.InputStreamReader;  
  38. import java.io.OutputStream;  
  39. import java.security.KeyStore;  
  40. import java.security.MessageDigest;  
  41. import java.security.cert.CertificateException;  
  42. import java.security.cert.X509Certificate;  
  43.   
  44. import javax.net.ssl.SSLContext;  
  45. import javax.net.ssl.SSLException;  
  46. import javax.net.ssl.SSLSocket;  
  47. import javax.net.ssl.SSLSocketFactory;  
  48. import javax.net.ssl.TrustManager;  
  49. import javax.net.ssl.TrustManagerFactory;  
  50. import javax.net.ssl.X509TrustManager;  
  51.   
  52. public class InstallCert {  
  53.   
  54.     public static void main(String[] args) throws Exception {  
  55.         String host;  
  56.         int port;  
  57.         char[] passphrase;  
  58.         if ((args.length == 1) || (args.length == 2)) {  
  59.             String[] c = args[0].split(":");  
  60.             host = c[0];  
  61.             port = (c.length == 1) ? 443 : Integer.parseInt(c[1]);  
  62.             String p = (args.length == 1) ? "changeit" : args[1];  
  63.             passphrase = p.toCharArray();  
  64.         } else {  
  65.             System.out  
  66.                     .println("Usage: java InstallCert <host>[:port] [passphrase]");  
  67.             return;  
  68.         }  
  69.   
  70.         File file = new File("jssecacerts");  
  71.         if (file.isFile() == false) {  
  72.             char SEP = File.separatorChar;  
  73.             File dir = new File(System.getProperty("java.home") + SEP + "lib"  
  74.                     + SEP + "security");  
  75.             file = new File(dir, "jssecacerts");  
  76.             if (file.isFile() == false) {  
  77.                 file = new File(dir, "cacerts");  
  78.             }  
  79.         }  
  80.         System.out.println("Loading KeyStore " + file + "...");  
  81.         InputStream in = new FileInputStream(file);  
  82.         KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());  
  83.         ks.load(in, passphrase);  
  84.         in.close();  
  85.   
  86.         SSLContext context = SSLContext.getInstance("TLS");  
  87.         TrustManagerFactory tmf = TrustManagerFactory  
  88.                 .getInstance(TrustManagerFactory.getDefaultAlgorithm());  
  89.         tmf.init(ks);  
  90.         X509TrustManager defaultTrustManager = (X509TrustManager) tmf  
  91.                 .getTrustManagers()[0];  
  92.         SavingTrustManager tm = new SavingTrustManager(defaultTrustManager);  
  93.         context.init(null, new TrustManager[] { tm }, null);  
  94.         SSLSocketFactory factory = context.getSocketFactory();  
  95.   
  96.         System.out  
  97.                 .println("Opening connection to " + host + ":" + port + "...");  
  98.         SSLSocket socket = (SSLSocket) factory.createSocket(host, port);  
  99.         socket.setSoTimeout(10000);  
  100.         try {  
  101.             System.out.println("Starting SSL handshake...");  
  102.             socket.startHandshake();  
  103.             socket.close();  
  104.             System.out.println();  
  105.             System.out.println("No errors, certificate is already trusted");  
  106.         } catch (SSLException e) {  
  107.             System.out.println();  
  108.             e.printStackTrace(System.out);  
  109.         }  
  110.   
  111.         X509Certificate[] chain = tm.chain;  
  112.         if (chain == null) {  
  113.             System.out.println("Could not obtain server certificate chain");  
  114.             return;  
  115.         }  
  116.   
  117.         BufferedReader reader = new BufferedReader(new InputStreamReader(  
  118.                 System.in));  
  119.   
  120.         System.out.println();  
  121.         System.out.println("Server sent " + chain.length + " certificate(s):");  
  122.         System.out.println();  
  123.         MessageDigest sha1 = MessageDigest.getInstance("SHA1");  
  124.         MessageDigest md5 = MessageDigest.getInstance("MD5");  
  125.         for (int i = 0; i < chain.length; i++) {  
  126.             X509Certificate cert = chain[i];  
  127.             System.out.println(" " + (i + 1) + " Subject "  
  128.                     + cert.getSubjectDN());  
  129.             System.out.println("   Issuer  " + cert.getIssuerDN());  
  130.             sha1.update(cert.getEncoded());  
  131.             System.out.println("   sha1    " + toHexString(sha1.digest()));  
  132.             md5.update(cert.getEncoded());  
  133.             System.out.println("   md5     " + toHexString(md5.digest()));  
  134.             System.out.println();  
  135.         }  
  136.   
  137.         System.out  
  138.                 .println("Enter certificate to add to trusted keystore or 'q' to quit: [1]");  
  139.         String line = reader.readLine().trim();  
  140.         int k;  
  141.         try {  
  142.             k = (line.length() == 0) ? 0 : Integer.parseInt(line) - 1;  
  143.         } catch (NumberFormatException e) {  
  144.             System.out.println("KeyStore not changed");  
  145.             return;  
  146.         }  
  147.   
  148.         X509Certificate cert = chain[k];  
  149.         String alias = host + "-" + (k + 1);  
  150.         ks.setCertificateEntry(alias, cert);  
  151.   
  152.         OutputStream out = new FileOutputStream("jssecacerts");  
  153.         ks.store(out, passphrase);  
  154.         out.close();  
  155.   
  156.         System.out.println();  
  157.         System.out.println(cert);  
  158.         System.out.println();  
  159.         System.out  
  160.                 .println("Added certificate to keystore 'jssecacerts' using alias '"  
  161.                         + alias + "'");  
  162.     }  
  163.   
  164.     private static final char[] HEXDIGITS = "0123456789abcdef".toCharArray();  
  165.   
  166.     private static String toHexString(byte[] bytes) {  
  167.         StringBuilder sb = new StringBuilder(bytes.length * 3);  
  168.         for (int b : bytes) {  
  169.             b &= 0xff;  
  170.             sb.append(HEXDIGITS[b >> 4]);  
  171.             sb.append(HEXDIGITS[b & 15]);  
  172.             sb.append(' ');  
  173.         }  
  174.         return sb.toString();  
  175.     }  
  176.   
  177.     private static class SavingTrustManager implements X509TrustManager {  
  178.   
  179.         private final X509TrustManager tm;  
  180.         private X509Certificate[] chain;  
  181.   
  182.         SavingTrustManager(X509TrustManager tm) {  
  183.             this.tm = tm;  
  184.         }  
  185.   
  186.         public X509Certificate[] getAcceptedIssuers() {  
  187.             throw new UnsupportedOperationException();  
  188.         }  
  189.   
  190.         public void checkClientTrusted(X509Certificate[] chain, String authType)  
  191.                 throws CertificateException {  
  192.             throw new UnsupportedOperationException();  
  193.         }  
  194.   
  195.         public void checkServerTrusted(X509Certificate[] chain, String authType)  
  196.                 throws CertificateException {  
  197.             this.chain = chain;  
  198.             tm.checkServerTrusted(chain, authType);  
  199.         }  
  200.     }  
  201.   
  202. }  

编译InstallCert.java,然后执行:java InstallCert hostname,比如:
java InstallCert www.twitter.com
会看到如下信息:

[java]  view plain  copy
  1. java InstallCert www.twitter.com  
  2. Loading KeyStore /usr/java/jdk1.6.0_16/jre/lib/security/cacerts...  
  3. Opening connection to www.twitter.com:443...  
  4. Starting SSL handshake...  
  5.   
  6. javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target  
  7.     at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:150)  
  8.     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1476)  
  9.     at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:174)  
  10.     at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:168)  
  11.     at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:846)  
  12.     at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:106)  
  13.     at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:495)  
  14.     at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:433)  
  15.     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:815)  
  16.     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1025)  
  17.     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1038)  
  18.     at InstallCert.main(InstallCert.java:63)  
  19. Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target  
  20.     at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:221)  
  21.     at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:145)  
  22.     at sun.security.validator.Validator.validate(Validator.java:203)  
  23.     at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:172)  
  24.     at InstallCert$SavingTrustManager.checkServerTrusted(InstallCert.java:158)  
  25.     at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(SSLContextImpl.java:320)  
  26.     at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:839)  
  27.     ... 7 more  
  28. Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target  
  29.     at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:236)  
  30.     at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:194)  
  31.     at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:216)  
  32.     ... 13 more  
  33.   
  34. Server sent 2 certificate(s):  
  35.   
  36.  1 Subject CN=www.twitter.com, O=example.com, C=US  
  37.    Issuer  CN=Certificate Shack, O=example.com, C=US  
  38.    sha1    2e 7f 76 9b 52 91 09 2e 5d 8f 6b 61 39 2d 5e 06 e4 d8 e9 c7   
  39.    md5     dd d1 a8 03 d7 6c 4b 11 a7 3d 74 28 89 d0 67 54   
  40.   
  41.  2 Subject CN=Certificate Shack, O=example.com, C=US  
  42.    Issuer  CN=Certificate Shack, O=example.com, C=US  
  43.    sha1    fb 58 a7 03 c4 4e 3b 0e e3 2c 40 2f 87 64 13 4d df e1 a1 a6   
  44.    md5     72 a0 95 43 7e 41 88 18 ae 2f 6d 98 01 2c 89 68   
  45.   
  46. Enter certificate to add to trusted keystore or 'q' to quit: [1]  

输入1,回车,然后会在当前的目录下产生一个名为“ ssecacerts” 的证书。

将证书拷贝到$JAVA_HOME/jre/lib/security目录下,或者通过以下方式:
System.setProperty("javax.net.ssl.trustStore", "你的jssecacerts证书路径");



注意:因为是静态加载,所以要重新启动你的Web Server,证书才能生效。

我注意到在我本地试着生成证书是不行的,因为域名没有解析,换成我们公司的测试环境地址生成就可以啦!
Java SSL证书过期导致SSLHandshakeException的快速定位与应急处理方案 SSL/TLS协议是保障网络通信安全的核心技术,通过非对称加密、数字证书和握手协议实现数据传输的机密性、完整性与身份验证。其核心价值在于为HTTP、API调用、微服务通信等应用场景提供可信的安全通道。当SSL证书过期时,信任链断裂,会直接引发SSL握手失败,导致服务间调用中断、数据同步失败等线上故障。本文聚焦Java生态中典型的javax.net.ssl.SSLHandshakeException异常,针对证书过期这一高频问题,提供从日志解读、网络诊断到JVM信任库检查的5分钟根因定位法,并详解三种临时应急 阅读详情

相关推荐

JDK8连接Elasticsearch 8 HTTPS集群的PEM证书解决方案

在Java应用开发中,HTTPS连接是保障数据传输安全的基础技术,其核心依赖于TLS/SSL协议与X.509证书体系。TLS协议通过非对称加密实现身份认证与密钥交换,而X.509证书则用于验证服务器或客户端的身份。在实际工程中,证书格式的兼容性常成为技术难点,尤其是当老旧运行环境(如JDK8)需要对接采用现代安全标准的服务(如Elasticsearch 8.x)时。PKCS#12与PEM是两种常见的证书格式,其中PEM以文本形式存储,易于阅读与处理,而PKCS#12为二进制封装。当JDK8的默认TLS实现无

486

Java调用ssl异常,javax.net.ssl.SSLHandshakeException: No appropriate protocol

javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) at sun.security.ssl.Handshaker.activate(Handshaker.java:529) at sun.security.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:1.

陈老老老板的博客 2403

Vue 10分钟入门VR全景显示 基于photo-sphere-viewer

文章目录前言一、引入photo-sphere-viewer?二、使用步骤1.引入库2.声明容器3.内容加载4.全部代码总结 前言 由于工作的需求,要实现全景图片的展示与预览,本来以为会是一个很难的内容,没想到使用现成的组件photo-sphere-viewer就可以轻松实现,上手只需要10分钟! 一、引入photo-sphere-viewer? 可以直接通过npm进行引入 npm install photo-sphere-viewer 二、使用步骤 1.引入库 photo-sphere-viewer

YIGE_MO的博客 5867

邮件服务器证书认证不通过

  邮件服务证书认证不通过javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find va...

toolkit1216的博客 671

ESP32-CAM与Thonny的完美搭配:从烧录到通信的完整流程

本文详细介绍了如何将ESP32-CAM与Thonny IDE完美结合,从固件烧录到通信测试的完整流程。通过硬件连接、MicroPython固件烧录、Thonny环境配置以及摄像头功能开发等步骤,帮助开发者快速搭建高效的物联网开发环境,实现图像采集与无线通信功能。

tomato的博客 1128

保姆级教程:2025新版JavPlayer 3.01整合修复版安装配置全流程(N卡/A卡/CPU通用)

本文提供2025新版JavPlayer 3.01整合修复版的保姆级安装配置教程,涵盖N卡、A卡和CPU环境。详细讲解硬件要求、分步安装流程、显卡优化配置及超分辨率模型选择,帮助用户高效完成视频修复任务。

weixin_42665255的博客 1902

记录一次关于javamail连接邮件服务器发邮件报错Unable to find valid certification path to target request

去年做的一个项目,上线一年半了快,今突然接到用户反映说收不到邮件。敝人甚是奇怪,,好端端的怎么就不正常发邮件了呢? 带着疑问我去翻log,我和小伙伴惊呆了。报错信息如下: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.sec...

qq_37502042的博客 1783

初级文章【西门子】字符拼接成字符串

针对S7-400极其以下PLC,1200往上据说有专门的块了呢,首先,我是不用库的,需要什么函数会自己写,OK进入正题。 首先,我们有一个DB块,里面有14个char,一个14位的char数组和一个14位的string。如下图。 我们的目的是将char1-char10拼接成一个string。 第一种方式:第一步,将char放进数组。 ​​​​​​​ 相信大家都能看明白,但是我还是要解释解释 L取值2 T赋值到临时变量DBNO(INT) OPN DB [#DBNO]获取DB块,这一句.

NS_Speak(IVAV) 1万+

JavaMail发送邮件失败缺陷修复,unable to find valid certification path to requested target的bug处理

项目中有使用Javamail发邮件,走的是SMTP协议,需要SSL加密,走加密994端口,程序正常,但是发送邮件抛异常如下: 2020-02-25 10:14:26,666 ERROR [com.xyzq.audit.controllers.email.EmailRecordsController.sendMail] - 邮件发送失败 javax.mail.MessagingException...

hithedy的专栏 3983

5060TI显卡深度学习环境搭建:CUDA12.8与CUDNN9.8.0的完美搭配

本文详细介绍了在Win10系统下为5060TI显卡搭建深度学习环境的最佳实践,重点配置CUDA12.8与CUDNN9.8.0的完美组合。通过优化OpenCV编译选项和YOLOv5环境设置,显著提升模型训练和推理效率,帮助开发者充分发挥5060TI显卡的性能潜力。

weixin_29065791的博客 491

S7-200SMART 中如何实现单按钮启停功能(两种方法)?

S7-200SMART 中如何实现单按钮启停功能(两种方法),Toggle库指令,状态翻转

Robot_PLC_HMI_Automation 1万+

解决javamail ssl 测试unable to find valid certification path to requested target

运行 java InstallCert 网址:端口号(不知道端口号也可会议不写,我就是没写端口号成功了因为我那会不知道我的那个网址得端口号) 例)java InstallCert smtp.interdrp.com:465 得到jssecacerts文件后复制到jdk1.6.0_14\jre\lib\security目录 然后再发送邮件就OK了 附件是 InstallCert.java package reyo.sdk.utils.ca; import java.io.Buffe.

qq_53354954的博客 780

第 13 章:Spring AI Alibaba MCP 与 Nacos3 — 企业级MCP服务

理解Spring AI Alibaba 框架下的MCP服务与Nacos注册中心整合的必要性,学会Spring AI Alibaba-基于Nacos的MCP实现方法

paopao_wu的专栏 789

javax.mail 邮件unable to find valid certification path to requested target

解决问题方案替换MailSSLSocketFactory为下面的类,这里用到了SSLContext.getInstance("TLSv1.2");MailSSLSocketFactory引用的为。

wnsh1990的博客 793

编织数据的实时脉络——构建基于MySQL的数据编织平台,实现实时数据治理

除了上述基本设置外,我们还可以根据实际应用场景自定义一些特定的监控项目。例如,对于某些高并发读写的表,可能需要特别关注它们的锁等待时间和回滚段使用率;而对于涉及到跨库关联查询的操作,则应当着重检查网络延迟及缓存命中率等因素。-- 获取InnoDB行级锁等待情况-- 统计各表的缓存命中率这段SQL脚本不仅展示了如何查询InnoDB引擎下的锁争用状况,还介绍了计算表级别缓存命中率的方法,有助于深入理解系统的运行状态。

墨夶的博客 1789

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JavaMail:PKIX path building failed: unable to find valid certification path to requested target

摘要:Java邮件应用部署到服务器后出现SSL/TLS证书验证失败问题。通过openssl验证确认证书链完整,问题根源在于服务器JRE的信任库缺少必要证书。解决方案包括:1)定位应用使用的JRE路径;2)导出邮件服务器的根证书;3)使用keytool将证书导入JRE的cacerts信任库;4)重启Java应用使变更生效。该问题典型反映了生产环境与开发环境的差异,需特别注意服务器JRE的证书配置。

Clawww的学习笔记 390

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

javamail unable to find valid certification path to requested target

今天在项目中利用JAVAMAIL对自架的邮件服务器进行邮件发送,其中遇 Causedby:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIXpathbuildingfailed: sun.sec...

weixin_33854644的博客 357

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Pop3_解决PKIX:unable to find valid certification path to requested target 的问题

最近有公司pop3协议接收pp邮箱出现异常,连不上服务器,错误内容: e: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certificat...

weixin_34095889的博客 197

Java mail by SSL

为什么80%的码农都做不了架构师?>>> ...

weixin_33744141的博客 140

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorExcepti

Java Spring应用发送数据报如下问题。 复制如下代码到文本文件中,改名为InstallCert.java。然后分别执行如下两条命令。 D:\Java\jdk1.8.0_221\bin\javac D:\code\InstallCert.java java InstallCert domain.company.com.cn 网站不需要输入(https://)信息。 随后服务器会返回认证的主题,发行方,加密方式等信息。 在这里输入1后,回车。 Enter certificate

figosoar的专栏 2万+

解决 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path buildin

详细分析Java中访问https请求exception(SSLHandshakeException, SSLPeerUnverifiedException)的原因及解决方法。1、现象 用JAVA测试程序访问下面两个链接。 https链接一:web服务器为jetty,后台语言为java。 https链接二:web服务器为nginx,后台语言为php。 链接一能正常访问,访问链接二报异常,且用Http...

chaishen10000的专栏 13万+

https请求报错unable to find valid certification path to requested target解决

在Java项目中请求HTTPS时,可能会遇到 "unable to find valid certification path to requested target" 错误。这个错误通常是由于SSL证书问题引起的。要解决此问题,可以尝试以下方法。

m0_38051458的博客 5万+

解决unable to find valid certification path to requested target...的问题

今天在像服务器发送http请求的时候出现了unable to find valid certification path to requested target的错误,百度了下需要证书啥的。解决方式是在发送http请求的时候,可以过滤掉所有的https证书验证。 代码如下: /** * POST请求 * * @param url * @param data * @return...

never_mm的博客 5400
上一篇: js阻止冒泡事件
下一篇: Jackson将json字符串转化为泛型list
qq_25041295
博客等级 码龄12年 0粉丝 10原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值