我有一个应用程序jar,我正在使用DefaultHTTPClient类对象调用HTTPS url,但它给出的对等体不是authenticate异常,所以我想使用Keystore对jar进行签名。
根据@Duncan,我可以通过引用这个链接导入JVM中的。cer文件…我使用belloed命令将.cer导入到cacerts中
C:\program files\java\jre7\bin>keytool-importcert-alias esbcert-file“e:\desktop\esbcert\esb.cer”-keystore“c:\program files\java\jre7\lib\security\cacerts”-storePass changeit
在此之后,我输入“Y”以信任证书
信任此证书?[否]:已将y证书添加到密钥库
之后,我运行我的应用程序,但它仍然给我javax.net.ssl.sslpeerunverifiedexception:peer not authenticated
堆栈如下:
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at sun.security.ssl.SSLSessionImpl.getPeerCertificates(Unknown Source)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.jav
a:126)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFact
ory.java:572)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnect
ion(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedCli
entConnectionImpl.java:294)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(Default
RequestDirector.java:645)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultReq
uestDirector.java:480)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpCl
ient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpCl
ient.java:805)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpCl
ient.java:784)
at testhttps.TestHTTPS.testWithMKCLHTTPClient(TestHTTPS.java:95)
at testhttps.TestHTTPS.main(TestHTTPS.java:49)
我的代码是:
String url = "https://domain.org/webapp/transformer/doTransformer/doReg";
try {
HttpPost postRequest = new HttpPost(url);
HttpResponse httpResponse = null;
DefaultHttpClient httpClient = new DefaultHttpClient();
httpResponse = httpClient.execute(postRequest);
} catch (Exception e) {
e.printStackTrace();
}
此异常表明与服务器URL建立的连接不是来自经过身份验证的客户端。为了解决这个问题,我们必须在JRE
中导入服务器的公共证书,运行java应用程序来导入证书,请遵循以下步骤:
根据@Duncan(评论),我可以通过引用这个链接导入JVM中的.cer文件…我使用belloed命令将.cer导入到cacerts中
C:\program files\java\jre7\bin>keytool-importcert-alias esbcert-file“e:\desktop\esbcert\esb.cer”-keystore“c:\program files\java\jre7\lib\security\cacerts”-storePass changeit
在此之后,我输入“Y”以信任证书
信任这个证书?[否]:已将y证书添加到密钥库
再说一遍,SSLPeerunverificed的沉闷问题,但我没有使用自签名证书。我尝试使用HTTPS连接到主机。此主机具有正确的证书,Firefox和HttpsUrlConnection都没有任何问题。然而,在尝试使用HttpClient进行连接时,我遇到了可怕的异常。 有线索吗?还是小费在哪里看得更近? 谢了!
我想在我的工作电脑上安装竹代理。我已经下载了jar文件,并尝试使用以下语法运行它 我得到错误javax.net.ssl.sslpeerunverifiedException:peer未经过身份验证。 这个错误的来源对我来说是清楚的--我们有一个自签名的SSL Sertificate。我尝试使用以下参数运行 但它并不起作用。 我尝试使用这个链接添加证书Java keytool从URL/端口添加服务器
我有Geo Trust签署的https证书。所有浏览器打开我的网站非常好。我的应用程序通过https授权,大多数时候一切都好。但有时用户无法连接并出现错误: 上一个用户拥有Windows7x86和Java1.7_45u。它发生在随机的OSs和随机的java更新上,我不知道原因。有时它不会发生,但通常如果用户有这样的错误没有帮助。 我不能添加证书到用户的密钥,因为这是用户应用程序。 目标url是au
当我想要在cPanel上安装证书时,我会看到以下错误: 错误证书验证失败! 已执行/usr/bin/openssl verify-capath/var/cpanel/ssl/installed/cabundles: stdin:CN=example.com 0深度查找时错误20:无法获取本地颁发者证书
我有一个服务,它公开了一个API我想测试。我在localhost上运行该服务,它有一个自签名证书。 我将。p12文件添加到test/resources和: 还增加了这个: restassured.config().sslconfig(sslconfig.sslconfig().AllowAllHostNames()); 但是,我得到以下错误: javax.net.ssl.sslpeerunveri