我在使用keytool获取SHA1证书时遇到问题 [英] I'm having trouble getting SHA1 certificate with keytool

查看:152
本文介绍了我在使用keytool获取SHA1证书时遇到问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用以下命令在macos sierra上找到我的签名密钥库的SHA1哈希:

I'm trying to find the SHA1 hash of my signature key store on macos sierra using the following comand:

keytool -exportcert -alias androiddebugkey -keystore $HOME/.android/debug.keystore -list -v -storepass android

结果如下所示:


别名:androiddebugkey
创建日期:2017年10月25日

输入类型:PrivateKeyEntry
证书链长度:1

证书[1]:
keytool错误:
java.util.IllegalFormatConversionException:d!= java。 lang.String
java.util.IllegalFormatConversionException:d!= java.lang.String at
java.base / java.util.Formatter $ FormatSpecifier.failConversion(Formatter.java:4331)
at
java.base / java.util.Formatter $ FormatSpecifier.printInteger(Formatter.java:2846)
at
java.base / java.util.Formatter $ FormatSpecifier.print(Formatter。 java:2800)java.base / java.uti上的
l.Formatter.format(Formatter.java:2581)at
java.base / java.util.Formatter.format(Formatter.java:2517)at
java.base / java.lang.String。 format(String.java:2747)at
java.base / sun.security.tools.keytool.Main.withWeak(Main.java:3151)at
java.base / sun.security.tools。 keytool.Main.printX509Cert(Main.java:3182)
at
java.base / sun.security.tools.keytool.Main.doPrintEntry(Main.java:1995)
at
java.base / sun.security.tools.keytool.Main.doCommands(Main.java:1212)
at java.base / sun.security.tools.keytool.Main.run(Main.java:397 )
java.base / sun.security.tools.keytool.Main.main(Main.java:390)

Alias ​​name: androiddebugkey
Date of creation: Oct 25, 2017
Input Type: PrivateKeyEntry
Length of certificate chain: 1
Certificate [1]:
keytool error: java.util.IllegalFormatConversionException: d != java.lang.String java.util.IllegalFormatConversionException: d != java.lang.String at java.base/java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4331) at java.base/java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2846) at java.base/java.util.Formatter$FormatSpecifier.print(Formatter.java:2800) at java.base/java.util.Formatter.format(Formatter.java:2581) at java.base/java.util.Formatter.format(Formatter.java:2517) at java.base/java.lang.String.format(String.java:2747) at java.base/sun.security.tools.keytool.Main.withWeak(Main.java:3151) at java.base/sun.security.tools.keytool.Main.printX509Cert(Main.java:3182) at java.base/sun.security.tools.keytool.Main.doPrintEntry(Main.java:1995) at java.base/sun.security.tools.keytool.Main.doCommands(Main.java:1212) at java.base/sun.security.tools.keytool.Main.run(Main.java:397) at java.base/sun.security.tools.keytool.Main.main(Main.java:390)

据我所知,该命令正在运行,它不是文件的问题,也不是密码,在我看来java中的一个内部错误,是否缺少一些java包?我正在使用Java SDK 9.0.1

As far as I can see the command is working, it is not a problem with the file nor with password, it seems to me an internal error in java, is it missing some java package? I am using Java SDK 9.0.1

推荐答案

我发现问题来自 JDK8.151 和 JDK9 。默认情况下 keytool 使用系统默认语言,这似乎在某些语言上不再正常工作(在我的情况下是法语)。

I found that the problem comes from latest version of Keytool in JDK8.151 and JDK9. By default keytool use system default language and that seems to do not properly work anymore on some languages (in my case French).

使用参数 -J-Duser.language = en

所以请尝试使用此命令行:

So try using this command line instead:

keytool -J-Duser.language=en -exportcert -alias androiddebugkey -keystore $HOME/.android/debug.keystore -list -v -storepass android

另请参阅我的答案: https://stackoverflow.com/a/47181882/5292951

这篇关于我在使用keytool获取SHA1证书时遇到问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆