`

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导出证书向导,希望对大家有用.











  • 大小: 107.7 KB
  • 大小: 105.6 KB
  • 大小: 98.2 KB
  • 大小: 55.9 KB
分享到:
评论
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

相关推荐

    CFCA证书环境Java安装

    在这些命令中,`-keystore cacerts`指定了密钥库,`-importcert`表示导入证书操作,`-alias`定义了证书别名,而`-file`指定了证书文件路径。默认的`cacerts`文件密码是`changeit`,如果提示输入密码,应输入此...

    JAVA使用数字证书加密文件

    6. Base64编码和解码:在处理证书文件时,通常会遇到Base64编码。`Base64.java`可能包含实现Base64编码和解码的代码,这是为了将二进制数据转换为文本格式,便于传输和存储。 最后,`JAVA使用数字证书加密文件.doc`...

    java代码生成数字证书

    6. **获取和使用公钥**:生成的证书文件(cer格式)可以存储公钥,通过解析这个cer文件,我们可以提取公钥进行加密操作。在Java中,可以使用`java.security.cert.CertificateFactory`来从文件加载证书,然后通过`...

    JAVA 使用数字证书加密解密文件

    本文将深入探讨如何使用Java语言结合RSA算法,通过数字证书实现文件的加密和解密操作。RSA是一种非对称加密算法,它的核心在于一对密钥:公钥和私钥。公钥可以公开给任何人,用于加密数据;而私钥必须保密,用于解密...

    java访问https网址下载文件(含证书)

    这里我们将深入探讨如何使用Java 1.7版本处理这一过程,包括处理SSL证书。 首先,理解HTTPS(超文本传输安全协议)是HTTP的安全版本,它通过SSL/TLS协议提供加密通信和服务器身份验证。在Java中,HTTPS访问涉及到`...

    java在IE中下载证书并安装(根证书)

    在Java应用中,我们可以使用`java.security.cert.CertificateFactory`类来解析证书文件,然后通过`KeyStore`接口将证书导入到本地密钥库。 3. **自动安装过程**:在IE中,通常证书下载后需要用户手动双击安装。但...

    java实现读取证书访问https接口

    在Java中,证书可以被加载到KeyStore对象中,KeyStore是存储密钥对和证书的容器。常见的证书格式有: 1. **.cer**:这是X.509证书的Base64编码格式,通常包含公钥信息。 2. **.der**:DER(Distinguished Encoding ...

    java获取数字证书信息

    ### Java 获取数字证书信息 在本篇文章中,我们将深入探讨如何使用Java来获取数字证书的信息,包括使用TOMCAT和JDK搭建SSL服务的过程、如何用OpenSSL签发证书以及如何支持第三方CA等内容。 #### 一、使用TOMCAT和...

    Java生成证书工具类

    编译:javac InstallCert.java 运行:java InstallCert 要访问的网址 最后面会输出: Enter certificate to add to trusted keystore or 'q' to quit: [1] ...将证书copy到$JAVA_HOME/jre/lib/security目录下

    Java签名证书信息查看工具

    Java签名证书信息查看工具是Java开发中用于检查和管理数字证书及密钥对的重要辅助工具。在Java应用程序或JAR文件发布时,为了确保代码安全和防止篡改,通常需要进行签名。Java签名证书信息查看工具就是在这个背景下...

    Java 生成证书工具类 https

    java生成https安全证书,解决httpClient访问https出错 编译:javac InstallCert.java 运行:java InstallCert 要访问的网址 ...输入1确认生成jssecacerts文件,将证书copy到$JAVA_HOME/jre/lib/security目录下

    java生成及验证android签名文件源码及生成签名文件

    签名过程涉及到了Java的关键组件——Java Key Store(JKS),这是Java提供的一个安全存储密钥和证书的容器。 生成Android签名文件通常使用Java的`keytool`命令行工具,它包含在Java Development Kit (JDK) 中。以下...

    Java从文件中读取数字证书.rar

    Java生成 数字证书源码,从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂,获取证书,请查看以下相关代码:  //生成文件输入流,输入文件为c:/mycert.cer  ...

    java生成CA证书

    `KeyStore`类则用来存储和管理密钥对和证书,如加载、保存和操作本地的keystore文件。 5. **生成自签名证书**:要创建自己的CA证书,首先需要生成一对密钥,然后使用私钥为公钥签署证书。这通常涉及到创建一个X.509...

    JAVA关于SSL证书请求的CSR文件及用户秘钥的生成工具类

    工具内容有完整的CSR生成及对应秘钥保存,使用java.securtiy Signature类

    java keytool安全证书学习

    Java Keytool是一个强大的工具,主要用于管理和操作密钥对和数字证书,这些是Java安全框架中的核心元素。在Java Secure Socket Extension (JSSE) 中,它扮演着创建和管理KeyStore和TrustStore的角色,以实现SSL/TLS...

    java 发送https 请求 证书

    Java的TrustStore包含了系统信任的根证书,如果服务器的证书不在这个TrustStore中,Java会抛出“ sun.security.validator.ValidatorException: PKIX path building failed”这样的异常。以下是一些步骤来处理这个...

    java批量生成证书

    java批量生成证书,通过用java文件生成bat,避免一各个敲命令的苦力方式.

Global site tag (gtag.js) - Google Analytics