问题标签 [android-keystore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
15557 浏览

android - “密钥库版本错误”错误。如何创建 version=1 密钥库证书?

我在使用 SSL 时遇到问题,因为我收到以下与我的密钥库相关的错误(使用 keytool 自创建和自签名:http: //developer.android.com/tools/publishing/app-signing.html) :

08-14 20:55:23.044: W/System.err(5430): java.io.IOException: 密钥库版本错误。08-14 20:55:23.060: W/System.err(5430): 在 org.bouncycastle.jce.provider.JDKKeyStore.engineLoad(JDKKeyStore.java:812) ...

类中抛出的错误JDKKeyStore.java出现在以下代码中:

来自 JDKKeyStore.java 的块引用:
if (version != STORE_VERSION) { if (version != 0) { throw new IOException("Wrong version of key store."); } }

块引用

在这种情况下,STORE_VERSION = 1,我的版本 = 3,基于读取我创建的密钥库所持有的证书的详细信息。我不知道如何生成包含 version=1 证书的密钥库。

我发现这个答案很有帮助: 执行 https 调用时错误的版本密钥库

但是它要求使用以下参数创建密钥库:

-storetype BKS
-provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath
/path/to/bouncycastle.jar

但是,当我尝试使用以下参数创建 keytool(使用 Mac 上的终端应用程序)时:

keytool -genkeypair -v -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000 -keypass android -keystore /Users/djames/dropbox/bc146keystore/debug.keystore -storepass android -providerclass org.bouncycastle.jce.provider.BouncyCastleProvider –providerpath /用户/djames/dropbox/bc146keystore/

(其中 /Users/djames/dropbox/bc146keystore/ 是充气城堡 jar 的路径:bcprov-jdk16-146.jar)

我收到以下错误:

keytool 错误:java.lang.RuntimeException:使用错误,?providerpath 不是合法命令 java.lang.RuntimeException:使用错误,?providerpath 不是 sun.security.tools.KeyTool.parseArgs 的合法命令(KeyTool.java: 375) 在 sun.security.tools.KeyTool.run(KeyTool.java:171) 在 sun.security.tools.KeyTool.main(KeyTool.java:166)

我不明白这是在告诉我什么。如果我使用: keytool -help 它告诉我以下是 -genkeypair 选项的有效选项:

-genkeypair [-v] [-protected] [-alias ] [-keyalg ] [-keysize ] [-sigalg ] [-dname ] [-validity ] [-keypass ] [-keystore ] [-storepass ] [-storetype ] [-providername] [-providerclass [-providerarg]] ... [-providerpath]

但是在我正在使用的 Oracle docs java 版本 6 中(http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html
它告诉我这些是选项:

-genkeypair {-alias alias} {-keyalg keyalg} {-keysize keysize} {-sigalg sigalg} [-dname dname] [-keypass keypass] {-validity valDays} {-storetype storetype} {-keystore keystore} [-storepass storepass] {-providerClass provider_class_name {-providerArg provider_arg}} {-v} {-protected} {-Jjavaoption}

其中不包括-providerpath option. 为什么不一致?(如果我不使用 -providerpath 选项,那么我会在该选项处得到一个未知的类异常:"-providerclass org.bouncycastle.jce.provider.BouncyCastleProvider"...)

当我谷歌:keytool -providerpath
我没有得到任何帮助来解决这个问题。

我不确定如何在不解决我的 keytool 问题的情况下解决我的密钥库版本问题。任何建议表示赞赏。

吉姆

0 投票
1 回答
5521 浏览

java - Android 调试密钥库

我正在尝试访问我的 .android debug.keystore,以便可以将其用于 facebook。

当我输入 windows cmd 时:C:\Users\<user>\.android\debug.keystore

我得到C:\Users\<user>的不是内部或外部命令、可运行程序或批处理文件。

有人可以告诉我发生了什么吗?

0 投票
1 回答
497 浏览

android - wss 的 Android 密钥库位置

我有一个 android 应用程序,它通过 https 并使用 wss (wss4j) 与安全的 web 服务进行通信。在以前的桌面 java 应用程序中一切正常,我使用物理 .jks 文件来初始化所有内容,即:

这一切在桌面上都可以正常工作,但是,在 android 设备上,显然位置是错误的(“c:/temp/conf/ihar.jks”,当然,不存在)。所以我的问题是如何指定文件的位置?我认为它只需要一个刺激值,所以像“file:///android_asset/res/ihar.jks”这样的东西可行吗?

在此先感谢,伊恩·哈里根

0 投票
2 回答
2057 浏览

android - 在市场上上传 apk 时,apk 必须使用与以前版本相同的证书进行签名

我创建了一个应用程序并在 android 市场上发布。现在我想发布它的第二个版本。我想澄清的几件事:

  1. 我保持相同的包名。
  2. 我没有以前的密钥库,因为我更改了 Windows,因此删除了密钥库,并且我没有该密钥库的备份。

现在我应该有什么方法可以从以前的 apk 中检索密钥库。

我知道stackoverflow上有很多答案,有些人说可能,有些人说不可能。

请需要确切的解决方案。

0 投票
2 回答
18371 浏览

android - 访问从 Android 设备的 SD 卡安装的证书

我尝试使用 Java 在 Android 上访问 PKI 安全服务。证书通过设置->位置和安全->从 SD 卡安装安装在设备上。

似乎在 ICS 上,证书在/system/etc/security/cacerts下共享,而在 GingerBread 上它们位于密钥库中:/system/etc/security/cacerts.bks

在 ICS 上,我发现KeyChain可以读取所有已安装的证书,所以我的问题是:

有没有办法访问从OS < 级别 14上的 SD 卡安装的证书?

或者

如果有统一的方式来访问从OS >= 8 级上的 SD 卡安装的证书?

谢谢。

0 投票
0 回答
366 浏览

android - 创建和使用密钥库 https android

我需要实现到我的应用程序的 https 连接。首先,我上课了,它信任所有证书,但读到它效率低下。然后我决定使用 kystore 来保存来自 serer 的密钥。我尝试在命令 promtp 中以这种方式创建它:

但是当我想这样使用时:

,我无法从 res/raw 目录访问我的密钥库,但我将它放在 res/raw 目录中。而且我的 R 文件也被删除了......我尝试使用 Portecle 接口实现它,但我遇到了同样的问题 - 无法从 res/raw 错误中访问密钥库,并且当我尝试构建/清理项目 R 文件时被删除。当我删除密钥库文件时,R 文件已恢复。请告诉我,我怎样才能以正确的方式创建密钥库并将其用于我的连接。

0 投票
5 回答
76731 浏览

android - 我不记得我的 android debug.keystore 密码

如何查看我的 debug.keystore 密码?我在 3 或 4 个月前输入了密码,现在我不记得了。

如果不可能,我该如何创建新的 debug.keystore?

0 投票
6 回答
5027 浏览

android - 签署android APK时eclipse中缺少关键别名

我已经创建了一个密钥库,签署了 apk 并将其发布到了 Play 商店。

现在我已经修复了一些错误,使用相同的密钥库和密码,然后在导出 android 应用程序向导中单击下一步。

它向我显示了一个别名的下拉框,上面没有别名。但是昨天同样的东西对我有用,可以签署同一个项目,现在它看起来是空的。

我也在命令行上尝试过,但它说“密钥库被篡改或密码不正确”,但我非常确定密码 id 是正确的,密钥库也是如此。

这对我来说是一个表演终结者。请帮忙!

0 投票
2 回答
1502 浏览

android - 登录应用后谷歌地图无法使用

我构建并签署了我的 android 应用程序。现在我在 google play 上发布,但是当我在 google play 上安装时,google maps 不起作用。我读了一些关于这个问题的文章,但我没有解决它。

签约后能做什么?

0 投票
1 回答
547 浏览

android - 如何使用现有代码创建 Android 应用程序?

我开发了一个 Android 应用程序并在 google play 上发布了它。然后我丢失了我的密钥库文件,现在我无法更新我的应用程序。因此,我想用我现有的代码创建新的应用程序。

如何使用我现有的代码来创建新的应用程序,并清楚地移植?