相关疑难解决方法(0)

解决javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败错误?

编辑: -尝试格式化问题并在我的博客中以更明显的方式接受答案

这是原始问题.

我收到此错误:

详细消息sun.security.validator.ValidatorException:PKIX路径构建失败:
sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

导致javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径

我使用Tomcat 6作为网络服务器.我有两个HTTPS Web应用程序安装在不同端口上但位于同一台机器上的不同Tomcats上.说App1(port 8443)App2(port 443).App1连接到App2.当App1所连接到App2我得到上述错误.我知道这是一个非常常见的错误,所以在不同的论坛和网站上遇到了很多解决方案.我有server.xml两个Tomcats 的以下条目:

keystoreFile="c:/.keystore" 
keystorePass="changeit"
Run Code Online (Sandbox Code Playgroud)

每个站点都说同样的原因,即app2提供的证书不在app1 jvm的可信存储中.当我试图在IE浏览器中访问相同的URL时,这似乎也是正确的,它可以工作(加热,这个网站的安全证书存在问题.在这里我说继续这个网站).但是当Java客户端(在我的情况下)遇到相同的URL时,我得到上述错误.所以把它放在信任库中我试过这三个选项:

选项1

System.setProperty("javax.net.ssl.trustStore", "C:/.keystore");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
Run Code Online (Sandbox Code Playgroud)

Option2 在环境变量中设置如下

CATALINA_OPTS -- param name
-Djavax.net.ssl.trustStore=C:\.keystore -Djavax.net.ssl.trustStorePassword=changeit ---param value
Run Code Online (Sandbox Code Playgroud)

选项3 在环境变量中设置如下

JAVA_OPTS -- param name
-Djavax.net.ssl.trustStore=C:\.keystore -Djavax.net.ssl.trustStorePassword=changeit ---param value
Run Code Online (Sandbox Code Playgroud)

但没有任何效果.

最后工作的 是执行如何使用Apache HttpClient处理无效SSL证书中建议的Java方法由Pascal Thivent执行,即执行程序InstallCert.

但这种方法适用于devbox设置,但我无法在生产环境中使用它.

我很奇怪,为什么上面提到的三种方法时,我已经中提到的相同值没有工作server.xmlapp2服务器和相同的价值观信任设置

System.setProperty("javax.net.ssl.trustStore", "C:/.keystore") and System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); …

java ssl https

392
推荐指数
11
解决办法
101万
查看次数

无法找到所请求目标的有效证书路径 - 即使在导入证书后也会出错

我有一个Java客户端试图访问带有自签名证书的服务器.

当我尝试发布到服务器时,我收到以下错误:

无法找到所请求目标的有效证书路径

在对这个问题进行了一些研究之后,我做了以下工作.

  1. 将我的服务器域名保存为root.cer文件.
  2. 在我的Glassfish服务器的JRE中,我运行了这个:
    keytool -import -alias example -keystore cacerts -file root.cer
  3. 要检查证书是否已成功添加到我的cacert,我这样做:
    keytool -list -v -keystore cacerts
    我可以看到证书存在.
  4. 然后我重新启动了Glassfish并退出了"帖子".

我仍然得到同样的错误.

我有一种感觉这是因为我的Glassfish实际上并没有阅读我修改过的cacert文件,但可能还有其他一些.

你们有没有遇到过这个问题,能否把我推向正确的方向?

java ssl keytool

182
推荐指数
7
解决办法
63万
查看次数

如何找出我的JVM使用的密钥库?

我需要将证书导入我的JVM密钥库.我使用以下内容:

keytool -import -alias daldap -file somecert.cer
Run Code Online (Sandbox Code Playgroud)

所以我需要将我的调用改为:

keytool -import -alias daldap -file somecert.cer -keystore cacerts –storepass changeit
Run Code Online (Sandbox Code Playgroud)

java jvm keytool

117
推荐指数
8
解决办法
35万
查看次数

javax.net.ssl.SSLHandshakeException:在Web服务通信期间握手期间远程主机关闭连接

我收到javax.net.ssl.SSLHandshakeException:当我尝试通过互联网进行Web服务的HTTPS发布时,握手异常期间远程主机关闭连接.但是相同的代码适用于其他Internet托管的Web服务.我尝试过很多东西,没有什么可以帮助我.我在这里发布了示例代码.有谁可以帮我解决这个问题?

public static void main(String[] args) throws Exception {

    String xmlServerURL = "https://example.com/soap/WsRouter";
    URL urlXMLServer = new URL(xmlServerURL);
    // URLConnection supports HTTPS protocol only with JDK 1.4+ 
    Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(
            "xxxx.example.com", 8083));
    HttpURLConnection httpsURLConnection = (HttpURLConnection) urlXMLServer
            .openConnection(proxy);
    httpsURLConnection.setRequestProperty("Content-Type","text/xml; charset=utf-8");
    //httpsURLConnection.setDoInput(true);
    httpsURLConnection.setDoOutput(true);
    httpsURLConnection.setConnectTimeout(300000);
    //httpsURLConnection.setIgnoreProxy(false);
    httpsURLConnection.setRequestMethod("POST"); 
    //httpsURLConnection.setHostnameVerifier(DO_NOT_VERIFY); 
    // send request
    PrintWriter out = new PrintWriter(
            httpsURLConnection.getOutputStream());
    StringBuffer requestXML = new StringBuffer();
    requestXML.append(getProcessWorkOrderSOAPXML());   
    // get list of user     
    out.println(requestXML.toString()); 
    out.close();
    out.flush();
    System.out.println("XML …
Run Code Online (Sandbox Code Playgroud)

java ssl webservice-client

66
推荐指数
6
解决办法
32万
查看次数

Android Studio - 无法找到所请求目标的有效证书路径

我收到了这个错误

Gradle 'project_name' project refresh failed: Unable to find valid certification path to requested target

当我在Android Studio 0.8.14 Mac OSX上创建一个新项目时

Build.gradle文件似乎变空了

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.13.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    } }

allprojects {
    repositories {
        jcenter()
    } }
Run Code Online (Sandbox Code Playgroud)

我无法运行该项目,似乎我必须手动配置所有内容.

这是idea.log http://pastebin.com/kyhfrBp9

android certificate gradle android-studio

52
推荐指数
10
解决办法
10万
查看次数

如何在Mac上从Chrome导出证书?

如何从Mac上的Chrome v37导出安全证书?

以前我可以点击URL旁边的小锁图标,选择"连接",选择证书,然后会出现"导出"按钮.

不再那样了!

security google-chrome export certificate pinning

41
推荐指数
5
解决办法
4万
查看次数

PKIX路径构建失败:无法找到请求目标的有效证书路径

我正在调用以下客户端的一些HTTPS Web服务:

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.HttpURLConnection;
import java.net.URL;

import javax.net.ssl.HttpsURLConnection;

/**
 * Handles http and https connections. It sends XML request over http (or https)
 * to SOAP web service and receive the XML reply.
 * 
 * @author mhewedy
 * @date 30.10.2010
 */
public class HttpWSXmlClient
{
    private final String ws_url;
    private byte[] requestData;

    public HttpWSXmlClient(String wsUrl)
    {
        this.ws_url = wsUrl;
    }

    public void readRequest(String xmlRequestFilePath)
    {
        try
        {
            InputStream …
Run Code Online (Sandbox Code Playgroud)

java web-services certificate ssl-certificate

40
推荐指数
6
解决办法
9万
查看次数

将SSL证书导入Eclipse

如何将java创建的SSL证书导入Eclipse中的项目?

java eclipse ssl ssl-certificate

28
推荐指数
4
解决办法
6万
查看次数

"无法找到所请求目标的有效证书路径",但浏览器表示没问题

我正在开发一个Java应用程序,它连接到https://ut.eurodw.eu/(欧洲Datawarehouse的测试环境)中公开的SOAP服务.我正在开发我的开发机器,最近用Windows 8.1重新格式化了.今天,我尝试通过SOAP从我的程序向他们发送创建请求,并收到此错误:

Caused by: javax.xml.ws.WebServiceException: Could not send Message.
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:146)
    at com.sun.proxy.$Proxy110.createDeal(Unknown Source)
    at it.csttech.edwin.services.spring.EdwinServiceImpl.createDeal(EdwinServiceImpl.java:102)
    at it.csttech.edwin.consumercredit.data.managers.spring.DealManagerImpl.createEdCode(DealManagerImpl.java:319)
    ... 77 more
Caused by: javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking https://ut.eurodw.eu/edservices/2.2/DealService.svc: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1339)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1323)
    at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
    at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:628)
    at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:565)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:474)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:377)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330)
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
    ... 80 more …
Run Code Online (Sandbox Code Playgroud)

java ssl ssl-certificate tomcat7 windows-8.1

25
推荐指数
1
解决办法
6万
查看次数

插件org.apache.maven.plugins:maven-clean-plugin:2.5或其中一个依赖项无法解析

我已经在我的机器上安装了maven.我已正确设置class-path和maven主文件夹.每次执行时mvn clean install,都会让我异常.我也尝试删除.m2文件夹,但结果相同.

  • mvn -version输出

    Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T19:57:37+08:00)
    Maven home: C:\maven-3
    Java version: 1.7.0_45, vendor: Oracle Corporation
    Java home: D:\jdk170_45\jre
    Default locale: en_US, platform encoding: MS950
    OS name: "windows 7", version: "6.1", arch: "x86", family: "windows"
    
    Run Code Online (Sandbox Code Playgroud)
  • 记录mvn -X clean install

        Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T19:57:37+08:00)
        Maven home: C:\maven-3
        Java version: 1.7.0_45, vendor: Oracle Corporation
        Java home: D:\jdk170_45\jre
        Default locale: en_US, platform encoding: MS950
        OS name: "windows 7", version: "6.1", arch: "x86", family: "windows"
        [DEBUG] …
    Run Code Online (Sandbox Code Playgroud)

maven-2 maven-plugin maven-3 maven maven-release-plugin

25
推荐指数
3
解决办法
13万
查看次数