我正在尝试使用HttpClient在Android手机上build立Https连接。 麻烦的是,因为证书没有签名,我不断收到“javax.net.ssl.SSLException:不受信任的服务器证书”。 现在我已经看到了一系列解决scheme,您只需接受所有证书,但如果我想问用户呢? 我想得到一个类似于浏览器的对话框,让用户决定是否继续。 最好我想使用浏览器相同的certificatestore。 有任何想法吗?
我正在做一个HTTPS后,我得到一个例外的SSL例外不受信任的服务器证书。 如果我做正常的http,它工作得很好。 我必须以某种方式接受服务器证书吗?
我为localhost CN创build了一个自签名的SSL证书。 正如预期的那样,Firefox在初次抱怨之后接受这个证书。 但是,即使将证书添加到“受信任的根”下的系统证书存储区,Chrome和IE也拒绝接受它。 即使在Chrome浏览器的HTTPSpopup窗口中单击“查看证书信息”时,证书列为正确安装,但仍然坚持证书不可信。 我该怎么做,让Chrome接受证书,并停止抱怨呢?
这看起来像一个标准的问题,但我无法在任何地方find明确的方向。 我有Java代码尝试连接到可能自签名(或过期)证书的服务器。 该代码报告以下错误: [HttpMethodDirector] I/O exception (javax.net.ssl.SSLHandshakeException) caught when processing request: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 据我了解,我必须使用keytool,并告诉java,这是可以的,以允许此连接。 解决这个问题的所有指令都假设我完全熟悉keytool,比如 为服务器生成私钥并将其导入到密钥库中 有没有人可以发布详细的说明? 我正在运行Unix,所以bash脚本将是最好的。 不知道是否重要,但代码在jboss中执行。
我添加到我们的大型Java应用程序的模块必须与另一家公司的SSL安全网站进行交stream。 问题是该网站使用自签名证书。 我有一份证书副本,用于确认我没有遇到中间人攻击,并且需要将此证书合并到我们的代码中,以便与服务器的连接成功。 这是基本的代码: void sendRequest(String dataPacket) { String urlStr = "https://host.example.com/"; URL url = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setMethod("POST"); conn.setRequestProperty("Content-Length", data.length()); conn.setDoOutput(true); OutputStreamWriter o = new OutputStreamWriter(conn.getOutputStream()); o.write(data); o.flush(); } 如果没有对自签名证书进行任何其他处理,则会在conn.getOutputStream()中死亡,但有以下例外情况: Exception in thread "main" 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 …. […]
编辑: –试图格式化的问题和接受的答案在我的博客更多的方式 这是原来的问题: 我得到这个错误 详细消息sun.security.validator.ValidatorException:PKIXpath构build失败: sun.security.provider.certpath.SunCertPathBuilderException:无法find有效的证书path到请求的目标 导致javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIXpath构build失败:sun.security.provider.certpath.SunCertPathBuilderException:无法find有效的证书path到请求的目标 我正在使用tomcat 6作为networking服务器。 我有两个https webbapplication安装在differte端口上不同的tomcat,但在同一台机器上。 说App1(port 8443)和App2(port 443) 。 App1连接到App2 。当App1连接到App2 i以上错误。 我知道这是非常常见的错误,所以在不同的论坛和网站上遇到很多解决scheme。 我有两个tomcat即server.xml中的条目 keystoreFile="c:/.keystore" keystorePass="changeit" 每个站点都表示与app2提供的证书不在app1 jvm的可信存储中相同的原因。 这似乎也是如此,当我厌倦了打IE浏览器中的相同的URL,它的工作原理(与温暖,有这个网站的安全证书有问题,在这里我说继续这个网站)但是,当相同的url被击中Java客户端(在我的情况)。 所以我得到上面的错误。 所以把它放在可信任我试过这些树选项即 选项1 System.setProperty("javax.net.ssl.trustStore", "C:/.keystore"); System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); Option2在环境variables中设置如下 CATALINA_OPTS — param name -Djavax.net.ssl.trustStore=C:\.keystore -Djavax.net.ssl.trustStorePassword=changeit —param value Option3在环境variables中设置如下 JAVA_OPTS — param name -Djavax.net.ssl.trustStore=C:\.keystore -Djavax.net.ssl.trustStorePassword=changeit —param value 但没有任何工作 。 最后的工作是执行如何处理无效的SSL证书与Apache HttpClientbuild议的java方法? 由帕斯卡尔Thivent即执行程序InstallCert。 […]
最近在Https上发布了一个关于HttpClient的问题( 在这里find )。 我已经取得了一些进展,但是我遇到了新的问题。 和我最后一个问题一样,我似乎无法在任何地方find适合我的例子。 基本上,我希望我的客户端接受任何证书(因为我只是指向一台服务器),但我不断得到一个javax.net.ssl.SSLException: Not trusted server certificate exception. 所以这就是我所拥有的: public void connect() throws A_WHOLE_BUNCH_OF_EXCEPTIONS { HttpPost post = new HttpPost(new URI(PROD_URL)); post.setEntity(new StringEntity(BODY)); KeyStore trusted = KeyStore.getInstance("BKS"); trusted.load(null, "".toCharArray()); SSLSocketFactory sslf = new SSLSocketFactory(trusted); sslf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme ("https", sslf, 443)); SingleClientConnManager cm = new SingleClientConnManager(post.getParams(), schemeRegistry); HttpClient […]
在我的search过程中,我发现了几种签名SSL证书签名请求的方法: 使用x509模块 openssl x509 -req -days 360 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt 使用ca模块 openssl ca -cert ca.crt -keyfile ca.key -in server.csr -out server.crt 注:我不确定使用这个正确的参数。 如果我要使用它,请告知正确的用法 用什么方式用你的authentication中心来签署证书请求? 一种方法比另一种更好(例如,一个被弃用)?
我将https支持添加到embedded式Linux设备。 我试图通过以下步骤生成自签名证书: openssl req -new > cert.csr openssl rsa -in privkey.pem -out key.pem openssl x509 -in cert.csr -out cert.pem -req -signkey key.pem -days 1001 cat key.pem>>cert.pem 这工作,但我得到一些错误,例如,谷歌浏览器: 这可能不是你正在寻找的网站! 该网站的安全证书是不可信的! 我错过了什么吗? 这是build立自签名证书的正确方法吗?
我知道有一些网页PhantomJS / CasperJS无法打开,我想知道这是否是其中之一: https ://maizepages.umich.edu。 CasperJS给出了一个错误:PhantomJS无法打开页面状态=失败。 我试着忽略ssl错误和改变我的用户代理,但我不知道如何确定使用哪些。 我现在正在做的是casper.start(url, function () { … })的基本casper设置,其中url=https://maizepages.umich.edu ;