如何解决验证SSL认证Java / Android
| 我的Android应用程序正在与受SSL证书保护的服务器通信。下面是该代码。final HttpPost httppost = new HttpPost(\"https://www.myurl.com\");
final List<NameValuePair> postlist = Utils.HttpGetToHttpPost(Arguments);
httppost.setEntity(new UrlEncodedFormEntity(postlist));
final HttpResponse response = httpclient.execute(httppost);
现在我的问题是如何防止MITM攻击。如何确保即时通讯与myurl.com对话,而不与其他网址对话。解决方法
经过快速研究...
使用Java附带的信任库并仅使用ssl通信,可能只是抵御中间人攻击的最佳保护。如果Java不信任服务器提供的证书,则开箱即用将引发异常。
根据我的阅读,黑客很难模仿证书颁发机构提供给站点的密钥。
我可能是错的。,您可以通过以下方式限制HTTPS主机名验证:
SSLSocketFactory sf = new SSLSocketFactory(SSLContext.getInstance(\"TLS\"));
sf.setHostnameVerifier(SSLSocketFactory.STRICT_HOSTNAME_VERIFIER);
请参阅《 JSSE参考指南》以使用Java SSL连接进行详细自定义。版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。