AD的SSL证书

系统中以前做的一个修改AD上用户的密码的程序出了问题,查了一下发现异常是证书过期,这个证书是从AD服务器上的一个证书服务下载来的。
于是联系管理员重新到AD上申请了一个新的证书,像以前一样通过JDK的keytool导入到keystore文件中。再执行单元测试代码,却出了另一个异常:
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


不明白啊,于是拜托google大神,在这篇文章里找到了方法http://blogs.sun.com/andreas/entry/no_more_unable_to_find,通过上面的程序生成keystore文件,这回就好使了。
还是不明白为什么啊,通过keytool比较两个keystore文件,仅发现可疑的有一个地方
ExtendedKeyUsages [
clientAuth
serverAuth
]


ExtendedKeyUsages [
1.3.6.1.4.1.311.10.3.4
emailProtection
clientAuth
]



为什么从服务器申请的证书,用keytool执行就没有serverAuth呢,怀疑是参数没设对。再拜托google,又在这里找到了答案http://blogs.sun.com/wangwj/entry/keytool_enhancements
原来-ext eku=sa,ca参数只是在JDK7里才加上了,而我用的却是JDK6,suodiesinie

这里再记录下两个个keytool命令
导入证书
keytool -importcert -v -trustcacerts -keystore "e:\\cacerts" -alias mkey -file "e:\\certnew.cer"

查看信息
keytool -list -v "e:\\cacerts"


还有一个不明白的问题是最开始的证书过期异常。在keystore里看到的Validity明明没有超出这个期限,似乎不是这个日期的限制
有效期: Wed Jan 27 13:50:40 CST 2010 至Thu Jan 27 13:50:40 CST 2011
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值