【问题标题】:How to implement SSL Certification如何实施 SSL 认证
【发布时间】:2013-09-03 04:43:42
【问题描述】:

我正在使用以下方法在 java 和 android 应用程序中实现 SSL 认证,但在许多帖子中我发现它不安全,仅适用于测试目的。那么有人可以给我一个关于在生产环境中实施 SSL 认证的例子吗?

TrustStrategy easyStrategy = new TrustStrategy() {
                @Override
                public boolean isTrusted(X509Certificate[] chain, String authType)
                        throws CertificateException {
                    // eh, why not?
                    return true;
                }
            };

            SchemeRegistry schemeRegistry = new SchemeRegistry();
            SSLContext sslcontext = SSLContext.getInstance("TLS");
            sslcontext.init(null, null, null);
            SSLSocketFactory ssf = new SSLSocketFactory(easyStrategy);
            ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

更新:当我通过网络浏览器连接到服务器时,我发现我尝试访问的服务器正在颁发自签名证书。这是我得到的 openssl 输出:

verify error:num=18:self signed certificate

它还提供了一个冗长的代码,它表示服务器证书。我可以用它来创建我自己的证书并在我的应用程序中使用它吗?

【问题讨论】:

  • 我想要一个解决方案,不仅适用于 android,还适用于桌面应用程序和 android。这似乎是它我会看一遍,让你知道。谢谢你:)
  • 这不是“实施 SSL 认证”。这只是接受任何旧证书。这是根本不安全的。请定义您的实际问题。不管是什么,除了测试目的之外,这不是一个可接受的解决方案,在我看来,即便如此。
  • @EJP 是的,我发现它的方式不安全。我想向 Web 服务器发出 HTTP 重新请求。据我了解,它发布了自己的认证。所以我不知道在我的应用程序中使用它的方法。所以我使用上述方法进行测试。现在我需要知道一种在我的应用程序中进行 SSL 认证的安全方法。
  • 将证书导入您的信任库。

标签: java android ssl https


【解决方案1】:

如果我正确理解您的问题,您希望获得生产环境的 SSL 认证。

为此,您不能使用您自己生成的自签名证书。你需要的是购买一些安全机构提供的认证。

如果您只是想尝试一下,可以在Comodo 申请免费试用 SSL 认证。这与您可以购买的相同,但仅有效期为 3 个月。

我不知道你运行的是哪个服务器,但是在你获得认证后,你只需要将它上传到你的服务器。我认为这部分你可以很容易地在网上找到。

【讨论】:

  • 感谢您的回复。这正是我所需要的
猜你喜欢
  • 1970-01-01
  • 2016-03-10
  • 2018-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多