java安装证书_Java安装证书文件

今天在程序中用到了HTTPS连接的HTTPURLConnnection, 运行是发生了下面的错误,发现是要安装证书文件,稍微找了一下,把证书文件安装了,就正确了,在这里把证书文件的命令保存一下,以备以后查看:

Suppose:

$JAVA_HOME = "C:\Program Files\Java\jdk1.6.0_01"

Run the following command to import the certifate file.

keytool -import -trustcacerts -alias cng_domain -file cng.cer -keystore % $JAVA_HOME/jre/lib/security/cacerts

至于怎么从浏览器里面导出证书文件我就不多说了。

chrome下面导出证书大家请看:http://asialee.iteye.com/blog/1612513

[size=large]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

at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1520)

at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:182)

at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:176)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:975)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:123)

at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:511)

at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:449)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:817)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1029)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1056)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1040)

at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:405)

at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:170)

at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:836)

at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)

at cng.api.GatewayConnector.procesRequest(GatewayConnector.java:141)

at cng.api.GatewayConnector.processPreAuthRequest(GatewayConnector.java:49)

at cng.test.Application.processPreAuth(Application.java:24)

at cng.test.Application.main(Application.java:13)

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

at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:285)

at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:191)

at sun.security.validator.Validator.validate(Validator.java:218)

at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)------------Begin Pre-Auth------------------------

at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)

at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:954)

... 15 more

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174)

at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238)

at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:280)

... 21 more

Exception in thread "main" java.lang.NullPointerException

at cng.test.Application.printResponse(Application.java:68)

at cng.test.Application.processPreAuth(Application.java:27)

at cng.test.Application.main(Application.java:13)

[/size]

chrome导出证书向导,希望对大家有用.

68b27497ce358dcb47a9ab64baf3a429.png

7cc9a7f8ba878b83d18ef5851d21c04b.png

cf9cff7c8e5fc87fb43fcb6b32a9731a.png

4a56a5781ab4a08c2c942c626dd66df8.png

51d18c621c4d24aec24e5b930359b6e9.png

大小: 107.7 KB

c8aa95717d070ddfa88595b9efaebc7f.png

大小: 105.6 KB

a01f25774c9c50018c7ce2b04cd385b7.png

大小: 98.2 KB

54a0ebbb416a8b1a7949a36d04fcb682.png

大小: 55.9 KB

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2009-04-02 23:54

浏览 7928

评论

6 楼

andyxl

2014-04-18

一定要放到 security下,不然没有用的。

5 楼

asialee

2013-03-20

System.setProperty("javax.net.ssl.trustStore", "D:\\UTA\\DOC_E_Health_XML\\Keystore\\jssecacerts

4 楼

asialee

2012-08-23

八岭书生 写道

Client client = new Client(new URL(workerurl));

Object[] rst = client.invoke("syncSheetState", new Object[]{requestXml});

String returnStr = (String) rst[0];

我用以上代码去调用https所发布的服务  仍会抱你所写的那种错误  证书我已添加了。。

加我qq吧: 327379252,咱们讨论一下。

3 楼

八岭书生

2012-08-23

Client client = new Client(new URL(workerurl));

Object[] rst = client.invoke("syncSheetState", new Object[]{requestXml});

String returnStr = (String) rst[0];

我用以上代码去调用https所发布的服务  仍会抱你所写的那种错误  证书我已添加了。。

2 楼

TuZiGuai

2011-12-06

我就是按照大侠的这种方式导入的证书,还是提示没有安装证书这个错误。我的应用是跑在tomcat里,tomcat用的是eclipse自带的jdk,并不是我之前导入证书的JDK,改了一下配置,OK了!

1 楼

asialee

2011-03-16

keytool -import -trustcacerts -alias scm_domain -file F:/aaa/test.cer -keystore "%JAVA_HOME%/jre/lib/security/cacerts"

这么写

-file F:/aaa/test.cer

这个是要你从浏览器导出的证书文件。

-keystore "%JAVA_HOME%/jre/lib/security/cacerts" 指明的是证书的位置,这个不要改,你只要设置JAVA_HOME就可以了。

这个会让你输入密码, 密码默认为changeit

如果有什么问题,加我qq:327379252

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值