android - 如何调试为什么 SSLSession.IsValid 在 Android 中失败?

标签 android ssl

我有一个 SSL 客户端证书 .pem 文件。当通过 X509_load_cert_file() 方法从我的 C++ 客户端加载时,此文件工作正常。

现在,我尝试使用以下代码加载此文件:

    InputStream caInput = ctx.getResources().openRawResource(R.raw.cacerts);
    java.security.cert.Certificate ca;
    try {
        ca = cf.generateCertificate(caInput);
    } finally {
        caInput.close();
    }
    ...
    keyStore.setCertificateEntry("ca", ca);

但是,generateCertificate() 会抛出输入文件没有 ASN.1 序列标识符的异常。

.pem 文件包含一堆证书。我编辑了文件,删除了开头的注释,只留下了第一个 ---BEGIN CERTIFICATION---/---END CERTIFICATE--- 对。通过此更改,generateCertificate() 不会给出任何错误。但是,我随后对 SSLSession.IsValid() 的调用返回 false。

有人可以建议我可能缺少什么吗?也许其余的证书也需要加载到 keystore 中。问候。

最佳答案

是的,它们确实需要加载。您应该生成证书。您使用了错误的 API。

如果您询问的是 SSLSession.IsValid(),您应该展示一些调用它的代码。

关于android - 如何调试为什么 SSLSession.IsValid 在 Android 中失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27050414/

相关文章:

android - 球体 : getting real time location data to stop sphero (android)

android - list 中 facebook 应用程序的应用程序 ID 错误

java - 解析 <Body>...</> 标签内的 HTML

android - Twitter 选项未显示在 android studio 的 fabric 插件中

c# - 检查 MySqlConnection 是否使用 SSL

.net - Internet Explorer 通过 SSL Web API 出现间歇性 'Unable to download' 错误

android - 使用权重修改器在 LazyColumn 内排列单个项目

html - 文件 ://protocol not working under ssl?

ssl - 将 www 重定向到非 www

ssl - ipython 笔记本服务器 SSL 错误