如何实施SSL认证

时间:2013-09-03 04:43:42

标签: java android ssl https

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

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

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,您需要为生产环境进行SSL认证。

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

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

我不知道您正在运行哪个服务器,但在获得认证后,您只需将其上传到您的服务器即可。我认为这部分你可以在网上轻松找到。