Android是否支持.jks密钥库types?

我正尝试使用由服务器团队提供的密钥库连接到服务器。

在向服务器发送服务呼叫时,我首先使用以下api创build了KeyStore实例

KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType()); 

它将密钥库types返回为“BKS”。

什么服务器团队发送的密钥库是types“.jks”(somename.jks)所以,我收到exception“密钥存储区的错误版本”。

我试图通过传递“JKS”到KeyStore的getInstance()方法

 KeyStore keystore = KeyStore.getInstance("JKS"); 

但是在这里我得到exception“找不到KeyStore JKS实现”。

这是一段代码:

 KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); InputStream instream = mContext.getAssets().open("somename.jks"); try { trustStore.load(instream, "password".toCharArray()); } finally { try { instream.close(); } catch(Exception ignore) { } } 

请指导我解决这个问题。

  • 如何以编程方式将证书添加到信任库,并将其用于validation服务器身份validation
  • Android上HTTPS连接的未知协议错误
  • Android 4.4及更低版本的SSLHandshakeException
  • webview.loadUrl()中的Android错误 - 未find证书路径的信任锚
  • 带有https loadUrl的webView显示空白页面
  • Android在OKHttp中启用TLSv1.2
  • 如何解决“没有find证书 - Chrome应用已申请证书”Android / Google Chrome问题
  • javax.net.ssl.SSLPeerUnverifiedException:没有同行证书,而我正在与谷歌的地方api在Android
  • 我认为Android支持'唯一'BouncyCastle KeyStores(称为BKS)…您仍然可以使用Portecle

    将它从JKS转换为BKS,应该像魅力一样工作(至less当我尝试将我的.CRT存储为BKS格式时,它起作用了!);

    '只'的意思,很容易在这里:P,否则你将不得不操纵的东西