android - 果冻 bean 的客户端证书错误

标签 android certificate ssl

对于 Android,我使用 TLS 连接与使用此代码创建的客户端证书进行相互身份验证。

private static X509Certificate generateX509V1Certificate(KeyPair pair, SecureRandom sr)
{
  String dn="CN="+sUuid.toString();
  final Calendar calendar = Calendar.getInstance();
  calendar.add(Calendar.HOUR, -1);
  final Date startDate = new Date(calendar.getTimeInMillis());
  calendar.add(Calendar.YEAR, 1);
  final Date expiryDate = new Date(calendar.getTimeInMillis());
  final BigInteger serialNumber =   
    BigInteger.valueOf(Math.abs(System.currentTimeMillis()));
  X509V1CertificateGenerator certGen = new X509V1CertificateGenerator();
  X500Principal dnName = new X500Principal(dn);
  certGen.setSerialNumber(serialNumber);
  certGen.setIssuerDN(dnName);
  certGen.setNotBefore(startDate);
  certGen.setNotAfter(expiryDate);
  certGen.setSubjectDN(dnName); // note: same as issuer
  certGen.setPublicKey(pair.getPublic());
  certGen.setSignatureAlgorithm("SHA256WithRSAEncryption");
  if (VERSION.SDK_INT<VERSION_CODES.GINGERBREAD)
    return certGen.generateX509Certificate(pair.getPrivate(), "BC");
  else
    return  certGen.generate(pair.getPrivate(), sr);
}

key 对算法是“RSA”。 密码算法为“RSA/ECB/PKCS1Padding”。

在 Jelly Bean 版本之前它工作正常。

使用果冻 bean ,我在调用时收到错误

socket.getSession().getPeerCertificates()

进程在日志中被终止:

E/NativeCrypto(1133): error:140C10F7:SSL routines:SSL_SET_PKEY:unknown certificate type
A/libc(1133): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 1233 (AsyncTask #1)

我不知道如何解决这个错误。

你能帮帮我吗?

最佳答案

将生成的证书转储到一个文件中并尝试解析它 OpenSSL 1.0。这与 Android 用于解析证书的代码相同,因此它应该可以帮助您找到错误。也许他们根本不再支持 v1 证书,您可以尝试生成一个 v3 证书。

关于android - 果冻 bean 的客户端证书错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12154495/

相关文章:

c# - 在 Linux 上将客户端证书添加到 POST 到 Kestrel REST API 的 .NET Core 无法通过服务器证书验证

android - 使用 PagerSlidingTabStrips 在单击选项卡时切换选项卡不起作用

java - 从 keystore 加载证书

android - Android 应用程序中的 Scala REPL

html - 是否有一个平台可以在高中类环境中为 iOS 开发 HTML5 应用程序,而无需 Mac?

ssl - 如何让 Websphere 将 keystore 更改从部署管理器传播到节点?

ruby-on-rails - Rails、Nginx、Passenger、SSL - 文件上传不工作

c# - HTTPS GET API 调用错误 - 无法创建 SSL/TLS 安全通道。 - 无法连接到远程服务器

android - Xamarin WebView 上的摄像头

android - 如何在android中离线加载网页