【问题标题】:How to get SHA1 fingerprints from p12 certificate?如何从 p12 证书中获取 SHA1 指纹?
【发布时间】:2015-06-28 04:21:19
【问题描述】:

为了获取我的 Android 项目的密钥,Google 需要 SHA1 指纹。 提供此命令:keytool-list-v-keystore mystore.keystore

我经历了不同的选项,但总是出现错误 Illegal option: Files keytool:-list [选项] ...

例如我的命令:

C:\Program Files (x86)\Java\jre7\bin>keytool -storepass mypass -list -v -keystore C:\Program Files (x86)\Java\jre7\bin\android.p12

如果我在根目录 (c:) 中设置 p12 文件,则会收到另一个错误 - 密钥库格式无效。

【问题讨论】:

    标签: java android command-line sha


    【解决方案1】:

    这也可以通过 OpenSSL 完成:

    openssl pkcs12 -in <my pkcs12 file>.p12 -nodes -passin pass:<passphrase, or blank> |openssl x509 -noout -fingerprint
    

    【讨论】:

    • 我会在 -fingerprint 之后添加 -md5。除此之外还可以。
    • 这个和接受的答案最终会返回不同的指纹。
    【解决方案2】:

    对于 p12 格式 (PKCS12),使用选项 -storetype PKCS12。

    例如:

    keytool -list -v -keystore mykeystore.p12 -storetype PKCS12 -storepass 123456
    

    对于密钥库/证书检查和操作,我推荐 GUI 工具 Portecle(以前:KeyToolGUI)。 Here是方便的windows安装程序。

    【讨论】:

    • 也可以通过终端在 Mac 上工作。 ;)
    【解决方案3】:

    如果您使用的是 Android Studio。您可以通过 Gradle Tasks 快速获取 SHA1 证书指纹(debug,release... all Build Types!!):

    签名报告

    SHA1 显示在消息日志

    中

    Android 插件(在 gradle 应用中配置)创建 debug 模式默认。 到密钥库的文件路径:HOME/.android/debug.keystore

    我建议将 debug.keystore 附加到 build.gradle。为此,请将文件 debug.keystore 放入应用文件夹。

    额外:如果要创建发布,请将文件 release.keystore 放入应用文件夹。 (本示例使用相同的 debug.keystore)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 2013-12-03
      • 2015-07-16
      • 2015-05-11
      • 2021-10-27
      • 2012-08-26
      相关资源
      最近更新 更多