相关疑难解决方法(0)

Https Connection Android

我正在做一个https帖子,我得到ssl异常的例外不可信服务器证书.如果我做正常的http它工作得很好.我必须以某种方式接受服务器证书吗?

java ssl android

99
推荐指数
4
解决办法
17万
查看次数

Android上的自签名SSL接受

如何在Android上接受Java中的自签名证书?

代码示例将是完美的.

我在互联网上随处可见,虽然有些人声称已找到解决方案,但它要么不起作用,要么没有示例代码来支持它.

ssl android self-signed ssl-certificate

52
推荐指数
4
解决办法
8万
查看次数

自定义SSL处理在Android 2.2 FroYo上停止运行

对于我的应用程序Transdroid,我通过HTTP连接到远程服务器,并可选择通过HTTPS安全地连接.对于与HttpClient的这些HTTPS连接,我使用自定义SSL套接字工厂实现来确保自签名证书正常工作.基本上,我接受一切,并忽略任何证书的每一次检查.

这已经有一段时间了,但它不再适用于Android 2.2 FroYo.尝试连接时,它将返回一个异常:

java.io.IOException: SSL handshake failure: I/O error during system call, Broken pipe
Run Code Online (Sandbox Code Playgroud)

以下是我初始化HttpClient的方法:

    SchemeRegistry registry = new SchemeRegistry();
    registry.register(new Scheme("http", new PlainSocketFactory(), 80));
    registry.register(new Scheme("https", (trustAll ? new FakeSocketFactory() : SSLSocketFactory.getSocketFactory()), 443));
    client = new DefaultHttpClient(new ThreadSafeClientConnManager(httpParams, registry), httpParams);
Run Code Online (Sandbox Code Playgroud)

我使用了FakeSocketFactory和FakeTrustManager,其源代码可以在这里找到.

同样,我不明白为什么它突然停止工作,甚至错误'破管'的意思.我在Twitter上看到过Seesmic和Twidroid在FroYo上启用SSL时失败的消息,但我不确定它是否相关.

感谢您的任何指示/帮助!

ssl android android-2.2-froyo

38
推荐指数
1
解决办法
4万
查看次数

具有自签名SSL证书问题的HTTPS ...解决方案还是更好的方法?

我需要做的就是从具有自签名SSL证书的Web服务器下载一些基于文本的基本文件和图像文件.

我一直试图弄清楚如何使用HttpClient来做到这一点,但让SSL工作是一场噩梦,这对于这么简单的任务来说似乎太麻烦了.

有没有更好的方法来执行这些文件下载?也许通过WebView或浏览器功能?重新制作一个简单的HTTPS GET请求是一个很大的痛苦,并且显着地阻碍了我的开发计划.

https android download self-signed

17
推荐指数
1
解决办法
4万
查看次数

Android TLS连接和自签名证书

我正在尝试从我的Android应用程序连接到基于node.js的TLS服务器.当然它失败了因为我使用的是自签名证书.

无论如何我可以将证书添加到我的应用程序并让Android以某种方式信任它吗?注意,我没有使用HTTPS,这是一个TLS over TCP连接.

ssl android

17
推荐指数
2
解决办法
2万
查看次数

从服务器HTTPS - android接收和验证证书

我通过https从我的Android客户端调用Web服务.我必须验证从服务器端接收的证书.我怎么做 ?目前这是我用来调用Web服务的代码.

private static String SendPost(String url, ArrayList<NameValuePair> pairs) {   // url = "https://....."   
    errorMessage = "";   
    String response = "";   

    DefaultHttpClient hc=new DefaultHttpClient();      
    ResponseHandler <String> res=new BasicResponseHandler();      
    HttpPost postMethod=new HttpPost(url);   

    try {   
postMethod.setEntity(new UrlEncodedFormEntity(pairs));   
        response = hc.execute(postMethod, res);   
    } catch (UnsupportedEncodingException e) {   
        e.printStackTrace();   
    } catch (ClientProtocolException e) {   
        e.printStackTrace();   
    } catch (IOException e) {   
        e.printStackTrace();   
    }        

    return response;   
}  
Run Code Online (Sandbox Code Playgroud)

如何在执行发布期间验证从服务器收到的自签名证书?我必须通过公钥/私钥进行测试.客户端将拥有一个CA文件.我需要客户端使用CA验证服务器证书,该服务是公共的.这与公钥/私钥有关.如何在致电帖子之前从服务器接收证书?

它们是stackoverflow上提供的几个选项和代码片段.我找到的多个链接的多个链接是: 在Android上接受HTTPs证书以及 使用Android和自签名服务器证书的HTTPS GET(SSL)

但我无法弄清楚哪些对我来说是好的/适用的!我不想禁用所有或接受任何.必须检查公钥/私钥/

任何帮助都非常感谢.

ssl android web-services certificate

8
推荐指数
1
解决办法
1万
查看次数

当Android没有看到证书时,如何在Android中调用安全(SSL)Web服务?

我是Android新手,我很难为Android应用程序调用SSL Web服务.我的代码如下:

Log.v("fs", "Making HTTP call...");
HttpClient http = new DefaultHttpClient();
HttpGet request = new HttpGet("https://example.com/api");

try {

    String response = http.execute(request, new BasicResponseHandler());
    Log.v("fs", response);

} catch (Exception e) {

    Log.v("fs", e.toString());
}
Run Code Online (Sandbox Code Playgroud)

输出是:

Making HTTP call...
javax.net.SSLPeerUnverifiedException: No peer certificate
Run Code Online (Sandbox Code Playgroud)

任何使这项工作的建议都会很棒.

我应该注意,这是一个有效的证书.它由官方CA签署.

java android httpclient

5
推荐指数
1
解决办法
9414
查看次数

带有中间证书的 Android SSL 信任链 (Apache HttpClient 4.X)

我正在尝试使用 Apache 的 HttpClient 4.X 从 Android 应用程序查询 HTTPS 网站。我得到一个javax.net.ssl.SSLPeerUnverifiedException: No peer certificate例外。我按照不同的说明导入证书:

这些都不适合我。

我认为我的问题是该站点的证书链如下:

  • 电信根 CA 2
    • 中级A
      • 中级B
        • 站点证书

所述电信根CA 2被包括在Android默认密钥库(/system/etc/security/cacerts.bks)。我在自己用于测试的手机上检查了这一点。

现在的问题是,我必须在自定义密钥库中包含所有说明告诉我提供哪些证书?只是中间件?只有网站吗?两个都?我也需要根证书吗?不Site's certificate应该由链验证 - 我不需要提供任何额外的证书,因为链的根是可信的。

如果您能向我解释发生了什么以及我如何使其发挥作用,我会很高兴。请不要发布忽略证书的解决方法,因为这是用于生产并且必须是安全的。

java ssl android certificate apache-httpclient-4.x

5
推荐指数
1
解决办法
4273
查看次数

Android websocket中的SSL连接错误

我开发了一个演示 android 应用程序,它使用安全的 websocket 协议连接到在线服务器。并且在开始连接时出现“未找到认证路径的信任锚”错误。我搜索了这个错误,只找到了相关的 HTTPS,我不知道如何在 websocket (wss) 中开发。

我将Autobahn-SW库用于 websocket。

代码在这里(在我的活动类中):

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final WebSocketConnection mConnection = new WebSocketConnection();

    final String wsuri = "wss://myserver_url";
    try {
        mConnection.connect(URI.create(wsuri), new WebSocketConnectionObserver() {

            @Override
            public void onOpen() {
                System.out.println("onOpend----> sending msg...");
                mConnection.sendTextMessage("hello");
            }

            @Override
            public void onClose(WebSocketCloseNotification code, String reason) {
                System.out.println("onClosed---> " + reason);
            }

            @Override
            public void onTextMessage(String payload) {
                System.out.println("onTextmessage---> " + payload);
            }

            @Override
            public void onRawTextMessage(byte[] payload) …
Run Code Online (Sandbox Code Playgroud)

android ssl-certificate websocket

5
推荐指数
1
解决办法
7596
查看次数

AndroidHttpClient需要更多信息.自签名SSL.可能?

关于AndroidHttpClient的信息很少,特别是我找不到任何好的例子.从我读到的 - 我可以使用此客户端,它已预先配置为SSL.我的目标是2.2+,所以它对我很有用.

  1. 关于我如何使用它有什么好的样本吗?专门用于REST服务POST
  2. 有关如何允许自签名证书的样本吗?我不介意只允许任何证书与将特定证书导入本地商店.

谢谢!

我自己的答案(见下面的代码).

  1. 我有自带签名证书的IIS服务器.我不得不采取额外步骤并生成与外部名称匹配的证书,而不是服务器名称.
  2. 我使用的是AndroidHttpClient.据说,这个客户端具有Android的所有"正确"设置,并从版本8开始支持
  3. 我在Application对象中创建AndroidHttpClient并在其中共享.
  4. 我将注入自定义证书的代码分开,以便以后很容易将其删除.我注意到在App启动时需要花时间从资源加载证书.

我的应用程序单例版本.请参阅顶部的注释,详细了解我用于生成所有内容的命令行.始终使用相同的密码以确保其有效.PKS文件密码必须匹配.

import android.net.http.AndroidHttpClient;
import android.app.Application;
import android.util.Log;
import idatt.mobile.android.providers.DBLog;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;

import java.io.InputStream;
import java.security.KeyStore;

/*
To generate PKS:
1. Created cert in IIS7 and then exported as pfx. Follow instruction on SelfSSL: http://www.robbagby.com/iis/self-signed-certificates-on-iis-7-the-easy-way-and-the-most-effective-way/
1a. Download tool: http://cid-3c8d41bb553e84f5.skydrive.live.com/browse.aspx/SelfSSL
1b. Run: SelfSSL /N:CN=mydomainname /V:1000 /S:1 /P:8081
 I use port 8081 on my server
1c. Export from IIS manager to cert.pfx
2. Run command …
Run Code Online (Sandbox Code Playgroud)

android

3
推荐指数
1
解决办法
5131
查看次数