2

我正在使用以下方法在 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

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

4

1 回答 1

1

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

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

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

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

于 2015-06-08T08:50:29.563 回答