我知道,这个问题有很多不同的问题和答案,但我不明白… 我有:ubuntu-9.10-desktop-amd64 + NetBeans6.7.1从“closures”安装。 代表。 我需要通过HTTPS连接到某个站点。 为此,我使用Apache的HttpClient。 从教程我读: “一旦你正确安装了JSSE,通过SSL的安全HTTP通信应该是 简单的HTTP通信简单。“和一些例子: HttpClient httpclient = new HttpClient(); GetMethod httpget = new GetMethod("https://www.verisign.com/"); try { httpclient.executeMethod(httpget); System.out.println(httpget.getStatusLine()); } finally { httpget.releaseConnection(); } 现在,我写这个: HttpClient client = new HttpClient(); HttpMethod get = new GetMethod("https://mms.nw.ru"); //get.setDoAuthentication(true); try { int status = client.executeMethod(get); System.out.println(status); BufferedInputStream is = new BufferedInputStream(get.getResponseBodyAsStream()); int r=0;byte[] […]
我正在使用Java 6,并试图使用客户端证书在远程服务器上创buildHttpsURLConnection 。 服务器正在使用自签名根证书,并要求提供受密码保护的客户端证书。 我已经将服务器根证书和客户端证书添加到我在/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/security/cacerts 10.5)中find的默认Java密钥库。 密钥库文件的名称似乎表明客户端证书不应该在那里? 无论如何,将根证书添加到此商店解决了臭名昭着的javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed' problem. 但是,我现在坚持如何使用客户端证书。 我已经尝试了两种方法,并没有让我到任何地方。 首先,首选,尝试: SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault(); URL url = new URL("https://somehost.dk:3049"); HttpsURLConnection conn = (HttpsURLConnection)url.openConnection(); conn.setSSLSocketFactory(sslsocketfactory); InputStream inputstream = conn.getInputStream(); // The last line fails, and gives: // javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 我试过跳过HttpsURLConnection类(不理想,因为我想与服务器通话HTTP),而不是这样做: SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault(); […]
如何从SSL证书创buildPEM文件? 这些是我可用的文件: .crt server.csr server.key
我正在运行PHP版本5.6.3作为Windows 7上的XAMPP的一部分。 当我尝试使用Mandrill API时,出现以下错误: 没有捕获exception'Mandrill_HttpError'消息'API调用消息/发送模板失败:SSL证书问题:无法获得本地颁发者证书' 我已经尝试了所有在StackOverflow上读取的内容,包括将以下内容添加到php.ini文件中: curl.cainfo = "C:\xampp\php\cacert.pem" 当然,从http://curl.haxx.se/docs/caextract.html下载到该位置的cacert.pem文件 但毕竟,重新启动XAMPP和Apache服务器,但仍然得到相同的错误。 我真的不知道还有什么可以尝试的。 任何人都可以build议我还有什么可以尝试?
我有一个类将从https服务器下载文件。 当我运行它时,它会返回很多错误。 我的证书似乎有问题。 是否可以忽略客户端服务器身份validation? 如果是这样,怎么样? package com.da; import java.io.FileOutputStream; import java.io.IOException; import java.nio.CharBuffer; import java.util.concurrent.Future; import org.apache.http.HttpResponse; import org.apache.http.client.utils.URIUtils; import org.apache.http.impl.nio.client.DefaultHttpAsyncClient; import org.apache.http.nio.IOControl; import org.apache.http.nio.client.HttpAsyncClient; import org.apache.http.nio.client.methods.AsyncCharConsumer; import org.apache.http.nio.client.methods.HttpAsyncGet; import org.apache.http.nio.client.methods.HttpAsyncPost; public class RSDDownloadFile { static FileOutputStream fos; public void DownloadFile(String URI, String Request) throws Exception { java.net.URI uri = URIUtils.createURI("https", "176.66.3.69:6443", -1, "download.aspx", "Lang=EN&AuthToken=package", […]
想知道是否有人可以请解释如何openssl在python2.7工程。 我不知道如果python有自己的openssl或从本地机器/ env拿起它? 让我解释一下:(如果我在Python中这样做) >>> import ssl >>> ssl.OPENSSL_VERSION 'OpenSSL 0.9.8x 10 May 2012' (在docker) $ openssl version OpenSSL 0.9.8x 10 May 2012 $ which openssl /usr/bin/openssl 现在我更新了openssl(已下载)。 $ cd openssl-1.0.1c $ ./Configure darwin64-x86_64-cc –prefix=/usr –openssldir=/opt/local/etc/openssl shared $ make $ sudo make install 这创build了独立的导演(如指定),所以我把它复制到旧path cp -f /usr/local/ssl/bin/openssl /usr/bin/openssl 现在在terminalopenssl版本已经更新,但不是从python! $ openssl version OpenSSL 1.0.1c 10 […]
我试图连接到运行godaddy 256位SSL证书的IIS6框,我收到错误: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. 一直试图确定是什么原因造成的,但现在画空白。 这是我如何连接: HttpsURLConnection conn; conn = (HttpsURLConnection) (new URL(mURL)).openConnection(); conn.setConnectTimeout(20000); conn.setDoInput(true); conn.setDoOutput(true); conn.connect(); String tempString = toString(conn.getInputStream());
我正在研究一个涉及CAS,jspring安全检查,redirect等的简单脚本。我想使用Kenneth Reitz的python请求,因为这是一个伟大的工作! 但是,CAS需要通过SSL进行validation,所以我必须先经过这一步。 我不知道Python要求的是什么? 这个SSL证书应该放在哪里? Traceback (most recent call last): File "./test.py", line 24, in <module> response = requests.get(url1, headers=headers) File "build/bdist.linux-x86_64/egg/requests/api.py", line 52, in get File "build/bdist.linux-x86_64/egg/requests/api.py", line 40, in request File "build/bdist.linux-x86_64/egg/requests/sessions.py", line 209, in request File "build/bdist.linux-x86_64/egg/requests/models.py", line 624, in send File "build/bdist.linux-x86_64/egg/requests/models.py", line 300, in _build_response File "build/bdist.linux-x86_64/egg/requests/models.py", line 611, in […]
我对HTTPS / SSL / TLS相当陌生,而且我对使用证书进行身份validation时客户端的performance有些困惑。 我正在写一个Java客户端,需要做一个简单的POST数据到一个特定的URL。 这部分工作正常,唯一的问题是它应该通过HTTPS完成。 HTTPS部分相当容易处理(使用HTTPclient或使用Java的内置HTTPS支持),但我坚持使用客户端证书进行身份validation。 我注意到在这里已经有一个非常类似的问题,我还没有用我的代码尝试过(将尽快这样做)。 我目前的问题是 – 无论我做什么 – Java客户端永远不会发送证书(我可以检查这与PCAP转储)。 我想知道当用证书进行身份validation时,客户端应该向服务器提供什么(专门用于Java–如果这很重要的话)? 这是一个JKS文件,或PKCS#12? 他们应该是什么 只是客户端证书,或一个关键? 如果是这样,哪个键? 关于所有不同types的文件,证书types等都有相当多的混淆。 正如我之前所说,我是HTTPS / SSL / TLS的新手,所以我也希望能够获得一些背景信息(不一定是散文,我会解决链接到好文章)。
我一直在尝试从我们在服务器上创build的PHP页面访问这个特定的REST服务。 我把这个问题缩小到了这两条线。 所以我的PHP页面如下所示: <?php $response = file_get_contents("https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json"); echo $response; ?> 该页面在第2行中死亡,出现以下错误: 警告:file_get_contents():SSL操作失败,代码为1. OpenSSL错误消息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书validation失败 警告:file_get_contents():无法在第2行的… php中启用encryption 警告:file_get_contents( https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json ):未能打开stream:操作失败,在第2行的PHP 我们正在使用一个Gentoo服务器。 我们最近升级到PHP版本5.6。 这个问题出现后就是升级之后。 我发现当我用https://www.google.com这样的地址replaceREST服务时, 我的网页工作得很好。 在之前的尝试中,我设置了“verify_peer”=>false ,并将其作为parameter passing给file_get_contents,如下所述: file_get_contents忽略verify_peer => false? 但是就像作者指出的那样; 它没有任何区别。 我问过我们的一个服务器pipe理员,如果我们的php.ini文件中有这些行: 延长= php_openssl.dll allow_url_fopen = On 他告诉我,既然我们使用Gentoo,openssl是在编译时编译的。 并没有在php.ini文件中设置。 我也确认allow_url_fopen正在工作。 由于这个问题的特殊性, 我没有find大量的帮助信息。 有没有人遇到过这样的事情? 谢谢。