当前位置: 首页 > 知识库问答 >
问题:

“密钥存储的错误版本”错误。如何创建版本=1密钥库证书?

邵飞宇
2023-03-14

我在使用SSL时遇到了困难,因为我得到了以下与我的密钥存储相关的错误(使用keytool per: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):at org.bouncycastle.jce.provider.jdkkeystore.engineLoad(jdkkeystore.java:812)...

JDKKeystore.java类中引发的错误出现在以下代码中:

jdkkeystore.java中的Blockquote:
if(version!=STORE_VERSION){if(version!=0){throw new IOException(“密钥存储的错误版本”);}}

块引号

在本例中,STORE_VERSION=1,而my version=3基于读取我创建的密钥存储所持有的证书的详细信息。我不知道如何生成包含版本=1证书的密钥库。

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

(其中/users/djames/dropbox/bc146keystore/是bouncy castle jar的路径:bcprov-jdk16-146.jar)

我得到以下错误:

keytool错误:java.lang.runtimeException:Usage错误,?providerPath不是合法命令java.lang.runtimeException:Usage错误,?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][-valide][-keypass][-keystore][-storepass][-storetype][-providername][-providerclass[-providerarg]]...[-providerpath]

但是在我使用的Oracle docs java Version6中(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选项。为什么不和谐?(如果我不使用-providerpath选项,那么我会在选项“-providerclass org.bouncycastle.jce.provider.bouncycastleprovider”...)中得到一个未知的类异常

当我Google:keytool-providerpath
时,我没有得到任何解决这个问题的帮助。

如果不解决密钥工具问题,我不确定如何解决密钥库版本问题。任何建议都很感激。

吉姆

(Mac OSX 10.6.8 if relevant)

共有1个答案

贝凯
2023-03-14

我的问题是使用的弹力城堡版本太新了。我后来不得不使用146-,它给了我这个错误。

 类似资料:
  • 我必须连接到一个基于REST的WebService。 (https://someurl.com/api/lookup/jobfunction/lang/en) 在IE或chrome浏览器中,当我尝试访问这个URL时,我会得到一个证书,我必须信任它并接受它才能继续,然后我必须输入用户名和密码,然后我会得到JSON响应。 同样的事情,我必须为一个android应用程序编程。 > 尝试使用自定义Easy

  • 当我尝试使用较低版本的android登录我的应用程序时,会发生此错误。所有安装了android 4.3及以上版本的手机/模拟器都能够无误登录,其中4.1.1版的手机和平板电脑会出现以下错误。我们认为这是因为android版本较低,正在寻找任何解决方案。 我目前试图降低我的版本的充气城堡到146像在这个链接 “密钥存储版本错误”错误。如何创建版本=1的密钥库证书? 我已经被困在这个问题上一天了,所以

  • 我想发出https请求。 我使用bouncyCastle生成密钥库,如下所示: 并且keylist命令返回正确的值。 但是当我这么做的时候: 我有一个错误: 我尝试使用几个版本的bouncycast,但结果是一样的。我还尝试定义keysize 1024,但没有任何更改。 有什么想法吗?

  • 我的应用程序在打开时会生成一个。我可以使用加密文本,但当我尝试使用解密时,它会抛出。 某些调试: 生成: 函数: 函数:

  • 我计划在key vault上保留密钥,但我不清楚密钥和秘密的版本控制,我有一些关于Azure key vault上的key/Secret的版本控制的问题。 如何创建现有密钥的新版本? 是否可以解密用不同版本的相同密钥加密的数据? 是否可以为某个版本的密钥设置过期日期?

  • 我试图发布一个继承的Cordova项目,该项目已经更新并准备部署,但当我尝试构建一个版本时,它会抛出这个错误: 指挥 误差 因此,我开始研究这个错误,并在StackOverflow上发现了类似的错误,它们都说。下面的部分似乎是错误的区别部分,据我所知,这不是重复的,因为其余的似乎都与错误的密码或密钥篡改有关。 我尝试使用标志来获取有关错误的更多信息,例如:、和;他们都没有提供任何见解 发现我可以在