【问题标题】:How to Allow SSL URL in Android error (No peer certificate)如何在 Android 错误中允许 SSL URL(无对等证书)
【发布时间】:2016-07-27 10:12:49
【问题描述】:

我尝试在我的应用程序 Android 中对 API url 使用 HTTPS 将以下代码发送到 webservice:

public final class Constants {
    public static class Extra {
    public static final String api_url = "https://example.co.id/";
    public static final String PACKAGE_NAME = "example.co.id";
    public static final String token = "some token";
    }
   }

为什么在我的网站已经在虚拟主机中购买证书 ssl 之前,我尝试运行应用程序会在日志中出现错误(没有对等证书)。

我尝试在 google 中搜索,尝试搜索最佳实践,但我的情况并不相同并使用 keytools 我非常不明白我从哪里开始添加 SSL“https”我的申请。

【问题讨论】:

    标签: android eclipse web-services ssl


    【解决方案1】:

    让安卓应用程序连接到 URL 的方法是跳过 SSL 验证(仅当我们确定连接时)

    为此,您可以添加 this class 并在 onCreate 方法中执行它

    new NukeSSLCerts().nuke();
    

    它将通过信任所有证书来跳过证书验证。

    【讨论】:

    • 如果我通过信任所有证书来跳过验证,它是否更安全?请给我解释:)谢谢! @Samrat Das 并注意我不使用 onCreate 因为只是定义 api_url 的最终类
    • 函数 NukeSSLcerts() 中的 HostnameVerifier() 和 SSLSession 中存在问题,如何解决?
    • 它将受到保护,直到服务器受信任为止。因为服务器必须由您开发。它是安全的。并添加import java.security.SecureRandom; import java.security.cert.X509Certificate; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; 作为标题。
    • 它的安全性较少。安全连接需要同时加密并验证您实际上是在与自认为正在与谁交谈的人交谈。第二部分来自与具有您信任的证书的人交谈,或者该证书已被您信任的人信任(签名),一直持续到您正在与之交谈的服务器有可验证的信任链。首先尝试使用letsencrypt.org 获取证书。不要将您的应用发布给普通用户,因为这部分是“核弹”。
    • 我明白了,而且我开始修复它允许证书,我已经在我的虚拟主机中使用 SSL。因为如果我用“https”启动应用程序总是没有对等证书。
    猜你喜欢
    • 2018-07-20
    • 2012-02-07
    • 1970-01-01
    • 2015-11-21
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    相关资源
    最近更新 更多