android - 如何在 Android 应用程序中验证 SSL 证书的有效性
问题描述
在进行服务调用之前,我需要验证 SSL 证书的有效性。如果证书无效,我需要显示警报。请给我一些想法。
解决方案
主机名验证可以通过X509HostnameVerifier
在SSLSocketFactory
. 一些实现已经在 android: AllowAllHostnameVerifier
, BrowserCompatHostnameVerifier
, StrictHostnameVerifier
/* ... */
public class MyHostnameVerifier extends AbstractVerifier {
boolean verify(String hostname, SSLSession session) {
X509Certificate[] chain = session.getPeerCertificateChain();
/* made some checks... */
return checked;
}
}
sslSocketFactory.setHostnameVerifier(new MyHostnameVerifier());
推荐阅读
- php - 在 While 循环中构建索引 PHP 数组
- python - 计算长度时DataFrame对象不可调用
- python - 用于从论坛下载视频的 Python 脚本
- android - 如何知道用户何时完成了 EditText 控件上的文本输入?
- xcode - 如何从 fastlane 只运行一个 ui-test?
- r - 使用 stringr 将下划线分隔的两个单词的首字母大写
- android - 通过 Apollo 进行 GraphQL 查询
- python - 我应该为我的应用程序使用 SQLite 数据库还是 Pandas
- java - Spring Reactor:带有 onErrorContinue 的 switchIfEmpty - 错误还是功能?
- java - 如何调试第三方 Intellij IDEA 插件?