javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found -凯发k8网页登录

 

javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found

(2006-03-14 20:03:53)   婷婷(16556907)
javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found

这个是因为你没有装好trustcerts,如果你是用tomcat,请务必检查tomcat使用的jdk下的jre(jre/lib/security/cacerts)中,是否已经安装了包含你所需的信任证书,如果没有,请import,keytool -import的命令,很简单的,如果你用的是weblogic,你看看weblogic console的keystore配置,有两项,你关注的应该是trustkeystore的属性,里面默认的信任证书都是老外的那些,往里面import你的证书就ok了。

posted on 2006-03-14 20:29 david.turing 阅读(29954) 评论(33)     所属分类: security异常问题

# re: 以后,securitysite的朋友请到这里提安全方面的问题,re本贴就行了 2006-03-14 20:42

是import我在s端的keystore吗??
导入的命令是这样的吗??
keytool -import -alias cacerts -file tomcat.cer
对吗??  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-14 20:59

首先你要明白,你在导入信任证书
假设你的证书别名是tingting
证书文件名为tingting.cer
并且你要导入到cacerts这个证书库(默认保护密码为changeit)中,
keytool -import -trustcacerts -alias tingting -file tingting.cer -keystore cacerts -storepass changeit
请你密切关注securex,这个eclipse插件会让你图形化完成上面的步骤。  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-14 21:32

555555555,还是不行,导入是导入了,但是还是出现同样的错误,我把我的环境描述一下:
s端:jdk1.5.0 tomcat5.5
用%java_home%\bin\keytool -genkey -alias tomcat1 -keyalg rsa 命令产生一个keystore.

c端:jdk1.5.0 tomcat
把服务器端的keystore拷贝到客户端
用了
keytool -export -alias tomcat -file tingting.cer
keytool -import -trustcacerts -alias tomcat -file tingting.cer -keystore cacerts -storepass changeit
接下来在jb里面编写java程序调用服务器端,然后报错!~~

faultstring: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found

  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-14 21:44

你还是装我的securex吧,ailas的这东西容易写错。  回复     

# no trusted certificate found的错误我倒是解决了!现在有了新的问题! 2006-03-15 10:18

我的cas服务端已经配置好了,tomcat起的8080端口 为cas的login地址,其中域名www.test.com是局域网域名,是通过hosts文件编辑生成的。


在服务器端生成server证书:keytool -genkey -alias tomcat -keyalg rsa -keystore keystore-file
其中cn项目我填写的:www.test.com:8443
生成客户端所需要证书,客户端成功导入证书到jvm里面。


通过cas的login页面验证以后,出现https hostname wrong: should be   回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-15 10:23

应改填写www.test.com
without 端口:0  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-15 10:56

感谢david.turing,我在服务端生成证书的时候cn项填写错误,其实只需要填域名,不用加端口。。  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-15 13:30

这种情况下可不可以把cn为www.test.com 换成机子所对应的ip地址阿??
  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-15 13:45

david 麻烦你帮忙看看我下面的出错代码 那个问题还是没有解决,不胜感激!!
我在代码里加了: system.setproperty("javax.net.debug","all");

结果出错部分如下:
*** certificate chain

chain [0] = [
[
version: v1
subject: cn=localhost, ou=buct, o=network, l=beijing, st=beijing, c=cn
signature algorithm: md5withrsa, oid = 1.2.840.113549.1.1.4

key: sunjsse rsa public key:
public exponent:
010001
modulus:
89bea75d 084c0725 512dd733 2b917cb4 483290b9 7e8772fa 0f3d1bd7 5a0286da
c181efe5 6f6e3c55 229a0c2c 11ff4878 c40776c5 2ba3d3cd 8d364860 25ee17ef
ef4e0cc1 a2af53f6 9ba30426 ca2dc924 0f6d8545 d1e74d8b c3b02d0c cb722fd3
37652b7d 5168f1bf 4b185e3a 590fcb14 2fb19ccb c400febb 73f45ac0 54e1685b
validity: [from: tue mar 14 10:38:43 cst 2006,
to: mon jun 12 10:38:43 cst 2006]
issuer: cn=localhost, ou=buct, o=network, l=beijing, st=beijing, c=cn
serialnumber: [ 44162cb3]

]
algorithm: [md5withrsa]
signature:
0000: 6e 06 45 41 91 3e b9 87 b7 a2 9e 53 f8 75 a5 7c n.ea.>.....s.u..

0010: ce 5c 0d 9d 1b eb 5d 8a 20 35 ad 15 13 35 45 92 .\....]. 5...5e.

0020: 4f 28 4b 23 eb 0b cc 3c 75 38 20 46 9f a8 09 1c o(k#...
0030: 7f 2d c6 53 f0 89 84 93 9b 96 fb a5 9f ab 0f cb .-.s............

0040: 1b f2 15 93 e5 9e 6b 1f e3 ac ab a7 f8 a7 9b b2 ......k.........

0050: ce 8b a9 03 4a ce 65 d6 dd eb 91 8a 3e 29 38 9f ....j.e.....>)8.

0060: 40 83 bf 8f 5b 93 96 33 45 e9 1f 69 d6 77 f7 30 @...[..3e..i.w.0

0070: c1 4f df e0 96 4c cd a2 02 9b b7 ff 64 9a e7 41 .o...l......d..a


]

***

main, send tlsv1 alert: fatal, description = certificate_unknown

main, write: tlsv1 alert, length = 2

main, called closesocket()

main, handling exception: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found
  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-15 13:55

该异常发生在ssl握手阶段,由于你的localhost的服务器不能提供一个你(也是localhost)信任的证书,请检查你jre/lib/security/cacerts中是否已经含有这个cn=localhost的证书项。完毕。  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-15 13:57

程序代码:

package https_matrix;

import java.util.stringtokenizer;

public class juzhen {
public juzhen() {
}

//获得jsp页面的二维矩阵,以空格分隔行,以逗号分割列
public int[][] getmatrix(string str) {
//获得矩阵的行和列
string strmiddle = str;
stringtokenizer strrow = new stringtokenizer(strmiddle,"\n");
int row = strrow.counttokens(); //矩阵行数
int col = 0;
if(strrow.hasmoretokens()){
stringtokenizer strcol = new stringtokenizer(strrow.nexttoken(), ","); //逗号分隔
col = strcol.counttokens(); //矩阵列数
}
//system.out.println("row = " row "\t" "col = " col);

int[][] juzhen = new int[row][col];

stringtokenizer st = new stringtokenizer(str,"\n"); //获得jsp页面矩阵
int i = 0, j = 0;
string strs = "";
//处理每一行
while(st.hasmoretokens()) {
stringtokenizer strow = new stringtokenizer(st.nexttoken(), ","); //逗号分隔
while(strow.hasmoretokens()){
strs = strow.nexttoken();
juzhen[i][j ] = integer.parseint(strs.trim());
}
i ;
j = 0;
}

return juzhen;
}


//矩阵相乘
public int[][] getresult(int[][] a, int[][] b){
system.out.println("row = " a.length "\t" "col = " b[0].length);
try {
long ls = system.currenttimemillis();
matrixservicelocator s=new matrixservicelocator();
long le = system.currenttimemillis();

long ws = system.currenttimemillis();
matrix p=s.getmatrix();
long we = system.currenttimemillis();

long ms = system.currenttimemillis();
int[][] q =p.multi(a,b);
long me = system.currenttimemillis();

long locator = le - ls;
long getservice = we - ws;
long getmethod = me - ms;

system.out.println("定位服务时间为:" locator "微秒");
system.out.println("得到服务时间为:" getservice "微秒");
system.out.println("得到方法时间为:" getmethod "微秒");

return(q);

}catch(exception e) {
system.out.println("error");
e.printstacktrace();
return a;
}

}
public static void main(string[] args) {
system.setproperty("javax.net.debug","all");
string str = "1,4,6,3\n5,3,6,3\n6,3,5,4\n5,3,5,2\n5,3,5,2";
string str1 = "1,1,1\n2,2,2";
string str2 = "1,1\n2,2\n3,3";
juzhen jz = new juzhen();

int[][] rs = jz.getresult(jz.getmatrix(str1),jz.getmatrix(str2));
for(int i = 0; i < rs.length; i ) {
for (int j = 0; j < rs[0].length; j ) {
system.out.print(rs[i][j] "\t");
}
system.out.println();
}
}
}
  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-15 14:28

怎样检查jre/lib/security/cacerts中是否已经含有这个cn=localhost的证书项阿??
  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-15 14:49

我检查了cacerts,里面有我加入的那项阿 :

您的 keystore 包含 31 输入

verisignclass1g3ca, 2004-3-26, trustedcertentry,
认证指纹 (md5): b1:47:bc:18:57:d1:18:a0:78:2d:ec:71:e8:2a:95:73
equifaxsecureebusinessca1, 2003-7-19, trustedcertentry,
认证指纹 (md5): 64:9c:ef:2e:44:fc:c6:8f:52:07:d0:51:73:8f:cb:3d
verisignclass2g2ca, 2004-3-26, trustedcertentry,
认证指纹 (md5): 2d:bb:e5:25:d3:d1:65:82:3a:b7:0e:fa:e6:eb:e2:e1
verisignclass3g3ca, 2004-3-26, trustedcertentry,
认证指纹 (md5): cd:68:b6:a7:c7:c4:ce:75:e0:1d:4f:57:44:61:92:09
entrustglobalclientca, 2003-1-9, trustedcertentry,
认证指纹 (md5): 9a:77:19:18:ed:96:cf:df:1b:b7:0e:f5:8d:b9:88:2e
tomcat, 2006-3-15, trustedcertentry,
认证指纹 (md5): 88:96:69:b3:67:01:2b:1b:b8:60:b5:7b:53:54:87:13
。。。

最下面那个就是我加入的,可是怎么还是说找不到证书呢??原因出在哪里呢??
  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-15 16:47

1,检查你的tomcat使用了什么jdk
2,你的tomcat的server.conf文件配置的keystore指向了你的证书私钥所在的keystore没有?如果没有,请加入。

还有,你上面贴的代码似乎跟你的问题无关。  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-18 21:27

我的问题终于解决拉!!
多亏了david提醒我,因为我用的是jb,而运行时jb跑的是他自己带的jdk,发现这个疏忽了以后,重新导入证书,运行通过!!~~
cheers~~~

太感谢david了,真是我的救命恩人:)

再说一次谢谢:p



  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-20 12:57

u r welcome:)
  回复     

# 关于cas开源项目对asp,php等非java web应用的支持 2006-03-20 17:04

看了cas工作机制,好像只能支持jsp的web站点sso,如果我有asp,或者php的web应用,是否能整合.或者对于其他语言的web应用整合cas还提供了什么其它的方法吗?  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-25 16:57

各位高手请帮小弟一个忙
本人想在iis下用openssl的证书,在网上找了篇文章如下:
=================================================================
作者:besunny
发表时间:2003-5-22 20:48:10
修改文章
前段时间写了点东西,可是一直不能找到客户端证书,现在又没有时间了,先贴出来,大家一起想想办法,就算为网站做贡献 :)

1. 生成自签名根证书
openssl req -x509 -newkey rsa:1024 -keyout cakey.pem -out cacert.pem -days 3650 –config e:\openssl-0.9.6h\apps\openssl.cnf
输入下列信息:
pem pass phrase:也就是密码,输入后牢记。
然后需要输入下列信息:
country name: cn //两个字母的国家代号
state or province name: guang dong //省份名称
locality name: guang zhou //城市名称
organization name: sunrising //公司名称
organizational unit name: home //部门名称
common name: besunny //你的姓名(要是生成服务器端的证书一定要输入域名或者ip地址)
email address: be-sunny@163.com email地址

把cakey.pem 拷贝到out32dll\democa\private, 把cacert.pem拷贝到out32dll\democa
注: 我用的是openssl提供的openssl.cnf,openssl.exe所在目录为out32dll

2.用iis web server产生一个证书申请certreq.txt
打开iis web server——〉站点属性——〉目录安全性——〉服务器证书——〉创建一个新证书——〉现在准备请求,但稍候发送——〉
命名和安全设置:名称:server,位长:1024
组织信息:组织:sunrising,组织部门:home
站点的公用名称:网站名称(或者服务器端的ip)
地理信息:国家:cn,省市:guang dong,市:guang zhou(注意一定要与先前的根证书相同,否则签名的时候会出错误)
生成certreq.txt。
把certreq.txt拷贝到out32dll所在目录

3. 用自己的ca对证书申请签名。
openssl ca -in certreq.txt -out server.pem –config e:\openssl-0.9.6h\apps\openssl.cnf
把pem格式证书转化为x509格式
openssl x509 -in server.pem -out server.cer
4.导入服务器证书
打开iis web server——〉站点属性——〉目录安全性——〉服务器证书——〉处理挂起并安装证书——〉选择生成的server.cer
5.生成客户端证书
openssl req -newkey rsa:1024 -keyout clikey.pem -out clireq.pem -days 365 –config e:\openssl-0.9.6h\apps\openssl.cnf
输入下列信息:
pem pass phrase:也就是密码,输入后牢记。
然后需要输入下列信息:
country name: cn //两个字母的国家代号
state or province name: guang dong //省份名称
locality name: guang zhou //城市名称
organization name: sunrising //公司名称
organizational unit name: home //部门名称
common name: client //你的姓名(要是生成服务器端的证书一定要输入域名或者ip地址)
email address: be-sunny@openssl.cn email//地址
a chanllenge password:123456//证书保护密码
an optional company name:sunrising//
签名:
openssl ca -in clireq.pem -out client.crt –config e:\openssl-0.9.6h\apps\openssl.cnf
生成pkcs12格式的证书
openssl pkcs12 -export -clcerts -in client.crt -inkey clikey.pem -out client.p12
安装信任的根证书
把cacert.pem改名为cacert。cer,在client端的ie中使用"工具 ' internet
选项 ' 内容 ' 证书 ' 导入"把
我们生成的ca根证书导入,使其成为用户信任的ca。
安装个人证书
把client.p12导入到client端的ie中作为个人证书

全过程结束。
=================================================================
但是我按照整个步骤成功做完后在客户端选择证书时找不到我安装的证书,请如何解决次问题,请高手执教!!!
  回复     

# cas中jaas认证实现的问题 2006-03-27 21:22

david,你好,曾看过你说的cas和jguard结合的贴子。说在myselfhandler中的boolean authenticate(javax.servlet.servletrequest request,string username,string password)方法中实现jaas登录认证,配置调用jguard提供的各种登录模块。但是cas中的myselfhandler本身不就是在web.xml可配置的吗?可以根据不同需要选择不同的认证handler。这种做是否重复进行了“可插拔”的配置。如果不利用jguard提供的登录模块,而是用自己开发的各种登录方式,什么配置方法最好呢?  回复     

# cas多个web应用配置问题 2006-03-29 18:12

david 你好。我已经按照网上的实例,成功在单个web应用下配置了cas~并且加入了我自的验证模块,一切功能都正常,现在出现问题,当我在2台机器上配置2个不同的web应用,先在a应用登录。。然后点击一个连接到b应用。。cas再次弹出登录提示。。开始折腾了好半天,结果最重要的东西没有解决~~我是不是需要再在服务端写一个状态查询方法,用于判断这个用户是否有登录过??还是通过客户端的相关配置,就可以解决?  回复     

# webservice的并发问题 2006-03-30 14:30

我用java开发了一套工作流系统,通过webservice提供外部接口,中间件用的是jboss3.x,对方用的是.net开发的项目,在测试过程中,如果有10个并发,只能返回9个人的数据,请问怎么解决?  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-03-31 16:55

你好,我想问问为什么我在weblogic配置sso的时候老出现以下的问题:
c:\program files\support tools>ktpass -princ http/zhangfan@hbca.org.cn -mapuser
zhangfan -pass 11111111 -out c:\zhangfan.keytab -crypto des-cbc-md5
failed to set property "serviceprincipalname" to "http/zhangfan" on dn "cn=zhang
fan,cn=users,dc=hbca,dc=org,dc=cn": 0x14.
warning: unable to set spn mapping data.
if zhangfan already has an spn mapping installed for http/zhangfan, this is n
o cause for concern.
key created.
output keytab to c:\zhangfan.keytab:

keytab version: 0x502
keysize 52 http/zhangfan@hbca.org.cn ptype 1 (krb5_nt_principal) vno 1 etype 0x3
(des-cbc-md5) keylength 8 (0xe5c1c1105d1657bc)
account has been set for des-only encryption.
  回复     

# securex的源码在什么地方? 2006-04-06 14:40

通过sf.net的cvs和svn都下载不了。  回复     

# securityx keytool import p12 file form xca export files with chain 2006-04-16 16:42

export p12 with chain form xca

&

eclipse side

keytool

new file.pks

import key pair

(first time )
can not get the algorithm---->recreate the cer ,problem resolve

(second time ,please help me )
(it's right password .)
(get file sucess)
(get algorithm , matched)
after import...............
java.lang.illegalargumentexception: argument cannot be null
org.eclipse.swt.swt.error(swt.java:2926)
org.eclipse.swt.swt.error(swt.java:2865)
org.eclipse.swt.swt.error(swt.java:2836)
org.eclipse.swt.widgets.widget.error(widget.java:395)
org.eclipse.swt.widgets.decorations.settext(decorations.java:1338)
org.dev2dev.client.password.dlggetnewpassword.createcontents(dlggetnewpassword.java:118)
org.dev2dev.client.password.dlggetnewpassword.open(dlggetnewpassword.java:102)
org.dev2dev.client.securexshell.importkeypair(securexshell.java:1862)
org.dev2dev.client.securexshell.access$6(securexshell.java:1745)
org.dev2dev.client.securexshell$7.widgetselected(securexshell.java:405)
org.eclipse.swt.widgets.typedlistener.handleevent(typedlistener.java:90)
org.eclipse.swt.widgets.eventtable.sendevent(eventtable.java:66)
org.eclipse.swt.widgets.widget.sendevent(widget.java:843)
org.eclipse.swt.widgets.display.rundeferredevents(display.java:3080)
org.eclipse.swt.widgets.display.readanddispatch(display.java:2713)
org.eclipse.ui.internal.workbench.runeventloop(workbench.java:1699)
org.eclipse.ui.internal.workbench.runui(workbench.java:1663)
org.eclipse.ui.internal.workbench.createandrunworkbench(workbench.java:367)
org.eclipse.ui.platformui.createandrunworkbench(platformui.java:143)
org.eclipse.ui.internal.ide.ideapplication.run(ideapplication.java:103)
org.eclipse.core.internal.runtime.platformactivator$1.run(platformactivator.java:226)
org.eclipse.core.runtime.adaptor.eclipsestarter.run(eclipsestarter.java:376)
org.eclipse.core.runtime.adaptor.eclipsestarter.run(eclipsestarter.java:163)
sun.reflect.nativemethodaccessorimpl.invoke0(native method)
sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39)
sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25)
java.lang.reflect.method.invoke(method.java:324)
org.eclipse.core.launcher.main.invokeframework(main.java:334)
org.eclipse.core.launcher.main.basicrun(main.java:278)
org.eclipse.core.launcher.main.run(main.java:973)
org.eclipse.core.launcher.main.main(main.java:948)
  回复     

# re:zhangfan 2006-04-16 16:45

warning: unable to set spn mapping data.
if zhangfan already has an spn mapping installed for http/zhangfan, this is n


这个问题,是说,你已经有一个spn mapping for http/zhangfan

如果想解决这个问题,最直接的方法就是使用setspn.exe 先去 delete http/zhangfan 然后再执行ktpass  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-04-16 16:59

ivan chen同学,有兴趣加入到securex开发组吗?我现在没有放代码上去,因为都没有用户下载:(
如果有兴趣,请加入securesite群14966586。  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-11-15 17:56

刚刚开始接触web service security 能否详细的介绍一下哦
  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2006-12-21 12:42

谢谢你,问题解决了。  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2007-01-08 14:03

我使用xca导出证书为pkcs#12后,在securex里导入密匙对时提示如下错误
org.dev2dev.security.keytool.cryptoexception: could not load keystore as type 'pkcs12'.   回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2007-02-05 09:30 david.turing

请阅读http://www.blogjava.net/security/archive/2007/01/07/securexrcp.html
------------
我使用xca导出证书为pkcs#12后,在securex里导入密匙对时提示如下错误
org.dev2dev.security.keytool.cryptoexception: could not load keystore as type 'pkcs12'.   回复     

# re: javax.validatorexception: no trusted certificate found 2007-10-10 14:44

我是一个新手,对ssl刚了解,最近要做一个工行的网上缴费,我们做客户端,我在写了一个main方法做测试的时候,也报了一个和上面相同的错误。我想问一下是不是不能用main方法来做测试啊?
  回复     

# re: javax.net.ssl.sslhandshakeexception: sun.security.validator.validatorexception: no trusted certificate found 2008-06-20 16:36

david:
你好,我最近遇到一个很困难的事,java httpclient 如何通过usbkey去建立 ssl连接呢?而我这个usbkey的privatekey是不可导出的。
我也用了securex,可是也在getrsaprivatekey时出错了,我不知道为什么。
good luck.
fangyi.   回复     

# 客户端信任所有证书或是服务器端添加证书两种方式解决 2013-08-28 11:41

可通过客户端信任所有证书或是服务器端添加证书两种方式解决,具体原因分析及解决方式见:  回复     

导航

统计

常用链接

留言簿(109)

我参与的团队

随笔分类(126)

随笔档案(155)

文章分类(9)

文章档案(19)

相册

搜索

积分与排名

最新随笔

最新评论

阅读排行榜

评论排行榜

网站地图