web-dev-qa-db-ja.com

keytoolでSHA1証明書を取得できません

次のコマンドを使用して、macos sierraで署名キーストアのSHA1ハッシュを見つけようとしています。

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.base/Java.util.Formatter $ FormatSpecifier.failConversionのJava.lang.String (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)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パッケージはありませんか?I Java SDK 9.0.1を使用しています

18
Jeilson Araujo

この問題は、JDK8.151およびJDK9のKeytoolの最新バージョンに起因することがわかりました。デフォルトではkeytoolはシステムのデフォルト言語を使用しますが、一部の言語(私の場合はフランス語)で適切に機能しなくなったようです。

パラメーター-J-Duser.language=enを使用して、英語での出力を強制するのに十分でした

そのため、代わりにこのコマンドラインを使用してみてください。

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

こちらの私の答えも参照してください: https://stackoverflow.com/a/47181882/5292951

97
gbaccetta