Java HttpClient+;SSL+;可信证书
我正在使用Commons HttpClient API连接到我们的一台服务器 此服务器使用SSL,还使用有效证书(由Verisign Trust Network颁发) 当我连接到服务器时,我的浏览器从不抱怨。但是我的java程序抛出 原因:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:未找到可信证书异常 我仍然有同样的问题,即使这个有效的证书被导入到我的java信任库中 我使用以下简单代码连接到服务器Java HttpClient+;SSL+;可信证书,java,ssl,httpclient,Java,Ssl,Httpclient,我正在使用Commons HttpClient API连接到我们的一台服务器 此服务器使用SSL,还使用有效证书(由Verisign Trust Network颁发) 当我连接到服务器时,我的浏览器从不抱怨。但是我的java程序抛出 原因:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:未找到可信证书异常 我仍然有同样的问题,即使这个有效的证书被导入到我的java信任库中 我使用以下简单代
HttpClient httpclient = new HttpClient();
GetMethod httpget = new GetMethod("https://www.ourserver.com/");
try {
httpclient.executeMethod(httpget);
System.out.println(httpget.getStatusLine());
} finally {
httpget.releaseConnection();
}
注:
我非常确定我们的服务器使用的是可信证书,因为我的浏览器从未抱怨过
谢谢。您是否已将Verisign根CA添加到您的信任库中?错误可能是因为颁发证书的CA不受信任
我不确定Java的truststore是否像大多数web浏览器一样自动配置为信任“默认”根CA(Verisign、Thawte等)。您可能必须使用keytool手动为每个用户启用信任,我假设您知道,因为您提到了导入到您的信任库中。您是否已将Verisign根CA添加到您的信任库中?错误可能是因为颁发证书的CA不受信任
我不确定Java的truststore是否像大多数web浏览器一样自动配置为信任“默认”根CA(Verisign、Thawte等)。您可能必须使用keytool手动为每个用户启用信任,我假设您知道,因为您提到了导入到信任库中。如果您使用的是较旧版本的java,即1.4,则verisign根CA可能不受信任。在这种情况下,您必须配置一个包含证书的信任库。这可以通过de'javax.net.ssl.trustStore'系统属性完成,但不建议这样做
您可以实现“org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory”以提供具有给定信任库的自定义SocketFactory。如果您使用的是较旧版本的java,即1.4,则verisign根CA可能不受信任。在这种情况下,您必须配置一个包含证书的信任库。这可以通过de'javax.net.ssl.trustStore'系统属性完成,但不建议这样做
您可以实现“org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory”以提供具有给定信任库的自定义SocketFactory。java确实信任许多CA证书。但是在旧的java版本中,并不是所有最近的CA都是可信的。我刚刚将这个证书单独导入到java的truststore中。我不知道如何为Verisign根CA执行此操作。我没有此根证书。还有一个问题,如果我在公开的Https站点上进行测试,我的程序运行良好。java确实信任很多CA证书。但是在旧的java版本中,并不是所有最近的CA都是可信的。我刚刚将这个证书单独导入到java的truststore中。我不知道如何为Verisign根CA执行此操作。我没有此根证书。还有一个问题,如果我在公开的Https站点上进行测试,我的程序运行良好。您使用的是什么版本的java,以及在对您的证书进行签名的证书链顶部的Verisign根证书的完整主题名是什么?我使用的是JDK 1.4。证书层次结构如下所示。。。1.内置对象令牌:Verisign Class 3公共主证书颁发机构2。威瑞信公司。我们的服务器..您使用的是什么版本的java,以及在为您的证书签名的证书链顶部的Verisign根证书的完整主题名是什么?我使用的是JDK 1.4。证书层次结构如下所示。。。1.内置对象令牌:Verisign Class 3公共主证书颁发机构2。威瑞信公司。我们的服务器。。