- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将自签名证书导入受信任的证书,以便默认浏览器接受与使用它的网站的连接。
使用 https://github.com/bitfireAT/cadroid 中的代码它归结为通过 X509TrustManager#checkServerTrusted()
进行的检查,它适用于 API 23 但不适用于 API 24/25(由 targetSdkVersion
设置)。
public boolean isTrusted() throws NoSuchAlgorithmException, KeyStoreException {
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init((KeyStore) null);
X509TrustManager tm = (X509TrustManager) tmf.getTrustManagers()[0];
try {
tm.checkServerTrusted(certificates, certificates[0].getPublicKey().getAlgorithm());
return true;
} catch (CertificateException e) {
return false;
}
}
证书已成功导入并受信任(由浏览器验证/它显示在系统设置 > 安全 > CA 证书中)因此它不应抛出异常(并且不会在 API 23 上抛出)。
我发现 Android 7.0 的唯一变化是没有提及任何相关内容 (https://developer.android.com/about/versions/nougat/android-7.0-changes.html#tls-ssl)。
有什么想法,如何检查 API > 23 上的证书是否受信任?
最佳答案
我刚找到 https://stackoverflow.com/a/38770284/2170109这解决了我的问题。
By default, secure connections (using protocols like TLS and HTTPS) from all apps trust the pre-installed system CAs, and apps targeting Android 6.0 (API level 23) and lower also trust the user-added CA store by default.
所以我需要在 list 中包含一个 networkSecurityConfig
并允许用户证书。
关于Android X509TrustManager#checkServerTrusted 在 API > 23 上抛出 CertificateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44024463/
我正在尝试 LDAPS 身份验证,但我忽略了 SSL 证书。 public class BlindSSLSocketFactoryTest extends SocketFactory { pr
我尝试使用 SOAPConnection 调用 https,并且我已经指向 keystore 和信任库,如下所示: System.setProperty("javax.net.ssl.keyS
我在 2 个不同的服务器上部署了 2 个应用程序,我的 GUI 应用程序在 Tomcat 上,CAS(中央身份验证)在 Websphere 上。我已经创建了 keystore 文件并在 tomcat
我正在开发我的安卓应用。我正在尝试从我的证书文件流生成 X509Certificate 实例,但得到 CertificateException ,这是我的简单代码: import java.sec
我正在尝试创建到网站 ( https://www.otten-markenshop.de/ ) 的 SSL 连接,并使用浏览器或 curl 它可以工作,但 wget 和 Java 都无法连接。我最感兴
您好,我尝试验证另一个证书,但在读取文件中的第一个证书时出现错误: //Get Public Key BasicX509Credential publicCredential = new BasicX
我的 IntelliJ 需要很长时间才能启动。因此,当我检查启动日志时,我可以看到它们与 jetbrains 证书有关: Caused by: java.security.cert.Certifica
我正在尝试使用 Retrofit 调用此 API:https://api.wheretheiss.at/v1/satellites/25544 这是建立连接的代码: retrieveButton.se
据我所知,在大多数情况下,此异常说明证书所有者 CN(公用名)与 url 中的主机名不匹配。但是在我的情况下,它们确实匹配,但仍然会出现异常。 远程服务器证书层次结构是: 带有 CN=sms.main
这个问题已经有答案了: Resolving javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException
我正在尝试使用 java 读取 URL try{ HttpURLConnection c = (HttpURLConnection) new URL(args[0]).openConnecti
我总是收到 java.security.cert.CertificateException: No subject alternative names present 异常(exception),但是
我有一个在 WebLogic 12.2.1 中运行的 JAX-RS Web 服务。我能够使用浏览器通过 HTTP 和 HTTPS 调用该服务。由于 SSL 证书是自签名的,因此在浏览器中出现提示时我必
堆栈跟踪是: Caused by: java.security.cert.CertificateException: No subject alternative names present at s
我正在运行 kafka 2.13-2.4.1 并在用 java 编写的 kafka 客户端(消费者)和 kafka 集群(3 个节点,每个节点有一个代理)之间配置 SSL 连接。我通过Confluen
问题是当我尝试使用 Java 在 Active Directory (AD) 中创建用户时出现此异常,但当我想从现有用户获取值时则没有问题。我需要一种解决方案,使其不仅在我的计算机本地工作,而且在全局
我开始在访问 https://ws.plimus.com/ 时遇到问题与 async-http-client几天之前。我收到“一般 SSLEngine 问题”消息,在堆栈跟踪中我可以看到它是由 jav
在我们的 QC 服务器上,我们完成了以下步骤: openssl genrsa -out server.key 2048 openssl req -new -out server.csr -key se
我需要一些帮助来修复项目中的证书异常。我收到 java.security.cert.CertificateException: Certificate data canot be processed
我正在尝试将自签名证书导入受信任的证书,以便默认浏览器接受与使用它的网站的连接。 使用 https://github.com/bitfireAT/cadroid 中的代码它归结为通过 X509Trus
我是一名优秀的程序员,十分优秀!