我正在使用以下方法在 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
它还提供了一个冗长的代码,上面写着服务器证书。我可以用它来创建我自己的证书并在我的应用程序中使用它吗?