标签: keytool

keytool error:java.lang.Exception:密钥库文件存在,但为空

我是SSL的新手.

我正在尝试使用keytool为SSL连接创建密钥库.首先,我尝试了以下命令

[aniket@localhost bin]$ keytool -genkey -alias myKeyStore -keyalg RSA -keystore
/home/aniket/keystore
Run Code Online (Sandbox Code Playgroud)

它问我密码和其他细节,最后给了我以下错误

keytool error: java.io.FileNotFoundException: /home/aniket/keystore 
(Is a directory)
Run Code Online (Sandbox Code Playgroud)

所以我在keystore文件夹中创建了一个文件keystoreFile.txt并执行了

[aniket@localhost bin]$ keytool -genkey -alias myKeyStore -keyalg RSA -keystore
/home/aniket/keystore/keystoreFile.txt
Run Code Online (Sandbox Code Playgroud)

现在(没有提示密码等)我得到了

keytool error: java.lang.Exception: Keystore file exists, but is empty:
/home/aniket/keystore/keystoreFile.tx
Run Code Online (Sandbox Code Playgroud)

该文件的内容应该是什么.我虽然keytool将生成密钥对(公钥和相关的私钥)

java ssl keystore keytool

24
推荐指数
1
解决办法
6万
查看次数

Keytool未被识别为内部或外部命令

我试图使用本文中的说明发现Java Runtime中的受信任权限列表.当我输入以下命令时:

C:\ColdFusion8\runtime\jre\lib>keytool -list -storepass changeit -noprompt -keystore
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

'keytool'不被识别为内部或外部命令,可操作程序或批处理文件.

我检查了包含我的keytool可执行文件的目录是否在路径中.(在我的Windows 7机器上,它在C:\Program Files (x86)\Java\jre6\bin)尽管如此,命令行将无法识别该keytool命令.

我假设doc中提到了两个单独的命令:

  1. C:\CFusionMX\runtime\jre\lib>keytool -list -storepass changeit -noprompt -keystore

  2. C:\CFusionMX\runtime\jre\lib\security\cacerts

编辑:

那么我可以使用以下过程而不是答案中提到的复杂步骤吗?

  1. 当我将WSDL打开到浏览器中时,我看到了Lock图标,当我点击它时会打开一个"Certificate"窗口
  2. 然后我点击"安装证书"选项

  3. 打开证书导入向导窗口,我单击Next我看到两个选项

    • a)根据证书类型自动选择证书存储(自动选择此选项)
    • b)将所有证书放在以下商店中

我决定选择选项(b),但我很困惑我应该选择哪个证书库.

java coldfusion keytool

24
推荐指数
3
解决办法
10万
查看次数

Keytool生成32个字符的长密钥哈希而不是28个

我使用以下命令为Android的Facebook应用控制台生成密钥哈希

.\keytool.exe -exportcert -alias app_android -keystore release.keystore | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)

正如Facebook开发者SDK帮助所述

根据帮助页面和开发人员控制台,密钥散列应该是28个字符长,但是keytool生成32个字符的长密钥.

Java版本:jdk1.8.0_31操作系统:Windows 7

为android生成.

编辑

根据@ Shreyash-mashru的建议,我使用以下代码来获取keyhash

try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "my.package.name",
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.e("KeyHash:", "++++++++++++++++++++++++++++++++++++++" + Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (PackageManager.NameNotFoundException e) {
        Log.e("KeyHash:", "++++++++++++++++++++++++++++++++++++++" + e.toString());

    } catch (NoSuchAlgorithmException e) {
        Log.e("KeyHash:", "++++++++++++++++++++++++++++++++++++++" + e.toString());
    }
Run Code Online (Sandbox Code Playgroud)

但是,如果有人仍然可以帮助我理解为什么命令行工具生成32个char长键哈希而不是28 ...

android facebook keytool

24
推荐指数
2
解决办法
5423
查看次数

Android密钥库已损坏

在播放商店中没有更新我的应用程序一段时间后,我尝试使用我的密钥库签署我的一个APK,但却发现密钥库和别名密码不再起作用.我可以使用这个要点重置密钥库密码:gist.github.com/zach-klippenstein/4631307现在工作正常.这适用于两个不同应用程序的两个不同的密钥库.

跑步keytool -list -keystore mykeystore导致:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

myalias, Dec 23, 2014, PrivateKeyEntry, 
Certificate fingerprint (SHA1): 85:8F:69......
Run Code Online (Sandbox Code Playgroud)

我100%确定别名密码与密钥库密码相同,但它似乎不起作用.我已尝试在Android Studio中签署APK,jarsigner -keystore mykeystore -storepass mykeystorepassword app-debug.apk myalias但响应总是:jarsigner: unable to recover key from keystore.

我尝试将别名移动到新的密钥库文件,keytool -importkeystore -srckeystore mykeystore -destkeystore newkeystore -srcalias myalias然后要求我输入新密钥库的新密码和旧密钥库的密码(两者都有效),只有在输入别名密码后才会出现异常:

Enter destination keystore password:  
Re-enter new password: 
Enter source keystore password:  
Enter key password for <myalias>
keytool error: java.security.UnrecoverableKeyException: Cannot recover key
Run Code Online (Sandbox Code Playgroud)

经过一些谷歌搜索后,我发现对于某些人来说,密钥库在更新到另一个JDK版本或Android …

java android keytool jarsigner

24
推荐指数
1
解决办法
3816
查看次数

Keytool设置主机名

我只是试图使用java keytool,但我无法弄清楚如何设置主机名.

这就是我尝试的方式:

hostname[username:/this/is/a/path][640]% keytool -keystore server.keystore -genkeypair -alias hostname
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  hostname
What is the name of your organizational unit?
  [Unknown]:  hostname
What is the name of your organization?
  [Unknown]:  hostname
What is the name of your City or Locality?
  [Unknown]:  hostname
What is the name of your State or Province?
  [Unknown]:  hostname
What is the two-letter country code for this unit?
  [Unknown]:  CA
Is CN=hostname, OU=hostname, …
Run Code Online (Sandbox Code Playgroud)

java https web-services certificate keytool

23
推荐指数
2
解决办法
2万
查看次数

找到已签名应用的密钥哈希值

我已经签署了我的应用程序,并将其导出到我桌面上名为app的文件夹中,该文件夹是我的应用程序本身和密钥库.如何找到可以复制到facebook开发者页面的密钥哈希.我有openssl安装,但似乎无法生成密钥哈希我已经在堆栈上尝试了许多其他线程,似乎没有任何帮助,谢谢

詹姆士

android keystore keytool hashtag

22
推荐指数
4
解决办法
6万
查看次数

在密钥库文件中查找别名

我在jre/lib/security下有一个密钥库文件cacerts,其中我使用import命令添加了一个Certicate.

我的密钥库中有超过50个证书.如何在密钥库中找到上次导入的证书的别名.我想删除我需要别名的最后添加的证书.请帮助.

java ssl certificate keytool

22
推荐指数
1
解决办法
6万
查看次数

Android密钥库密码更改

我想更改我在密钥库中使用的密码,用于谷歌播放中已有的Android应用程序,我想在做之前了解一些事情:

1)如果我更改了密钥库密码,我是否可以继续使用相同的密钥库来存储上传的应用程序(我需要这样做,这就是我要问的原因)

2)更改我的别名密码会产生同样的后果吗?

3)我应该如何使用keytool?

android keytool google-play android-keystore

22
推荐指数
4
解决办法
2万
查看次数

Jarsigner:找不到证书链

我已将证书导入私有~/.keystore文件:

keytool -list
Enter keystore password:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

mylyn-mantis, Jul 15, 2010, trustedCertEntry
Run Code Online (Sandbox Code Playgroud)

我正试图用它签一个罐子,但是我得到了一个'找不到证书链'的错误.

jarsigner -verbose  /home/robert/file.jar mylyn-mantis
jarsigner: Certificate chain not found for: mylyn-mantis.  mylyn-mantis must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

java keytool jarsigner

20
推荐指数
2
解决办法
4万
查看次数

keytool error:java.lang.Exception:只允许一个命令:指定了-exportcert和-list

Book-Pro:main vy$ keytool -exportcert -list -v \
> -alias androiddebugkey -keystore ~/.android/debug.keystore
keytool error: java.lang.Exception: Only one command is allowed: both 
-exportcert and -list were specified.
Run Code Online (Sandbox Code Playgroud)

我正在尝试在MBP上为Android Firebase项目创建一个SHA1.我按照说明从Firebase控制台中提取命令... https://developers.google.com/android/guides/client-auth

keytool -exportcert -list -v\-alias androiddebugkey -keystore~/.android/debug.keystore

我收到一个错误.keytool error:java.lang.Exception:只允许一个命令:指定了-exportcert和-list.

我试过手写这个想法,也许浏览器有问题.我安装了新的JDK ......不知道这里出了什么问题.请帮助

keytool

20
推荐指数
1
解决办法
4390
查看次数