android - Google Play 应用签名 : no keystore, just .p12

标签 android google-play android-app-signing

我正在尝试将我现有的应用切换为由 Google Play 进行应用签名。有一篇帖子对那些使用 keystore 文件的人提供了很好的说明:How to enable Google Play App Signing

我的问题是我只有一个 .p12 文件而不是 keystore ,我无法将其导入到 keystore 文件中(长话短说)。

使用 Google Play 应用签名的第一步是“将您的应用签名私钥导出到纯文本 PEM 文件。”我这样做了,现在我有了从原始 .第12页。根据 Google 的说明,他们似乎只需要包含我的私钥的 PEM 文件,而不是 keystore 文件。

我的问题是如何使用 pepk 工具创建 Google 从 PEM 文件中要求的加密应用签名私钥。

最佳答案

Oracle has written complete instructions关于将 PEM 转换为 keystore 。它还包括 p12。这可能会做你想做的。

不幸的是,搜索引擎不太容易找到它,因为他们将其称为“JKS”而不是 keystore 。

简而言之:

使用以下命令将证书从 PEM 转换为 PKCS12: openssl pkcs12 -export -out eneCert.pkcs12 -in eneCert.pem

您可以忽略此命令发出的警告消息。 输入并重复导出密码。 使用以下命令创建然后删除一个空的信任库:

keytool -genkey -keyalg RSA -alias endeca -keystore truststore.ks
keytool -delete -alias endeca -keystore truststore.ks

-genkey 命令创建如下所示的默认证书。 (这是一个临时证书,随后会被 -delete 命令删除,因此您在此处输入的信息无关紧要。)

Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: 
What is the name of your organizational unit?
[Unknown]:  
What is the name of your organization?
[Unknown]:  
What is the name of your City or Locality?
[Unknown]: 
What is the name of your State or Province?
[Unknown]: 
What is the two-letter country code for this unit?
[Unknown]: 
Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
[no]: yes

Enter key password for <endeca>
      (RETURN if same as keystore password):
Re-enter new password:

使用以下命令将 CA 导入信任库: keytool -import -v -trustcacerts -alias endeca-ca -file eneCA.pem -keystore truststore.ks

输入 keystore 密码。 在提示“信任此证书?”时输入是。 使用以下命令创建一个空的 Java KeyStore:

keytool -genkey -keyalg RSA -alias endeca -keystore keystore.ks
keytool -delete -alias endeca -keystore keystore.ks

-genkey 命令创建如下所示的默认证书。 (这是一个临时证书,随后会被 -delete 命令删除,因此您在此处输入的信息无关紧要。)

Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: 
What is the name of your organizational unit?
[Unknown]:  
What is the name of your organization?
[Unknown]:  
What is the name of your City or Locality?
[Unknown]: 
What is the name of your State or Province?
[Unknown]: 
What is the two-letter country code for this unit?
[Unknown]: 
Is CN="Unknown", OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
[no]: yes

使用以下命令将您的私钥导入空 JKS:

keytool -v -importkeystore -srckeystore eneCert.pkcs12 -srcstoretype PKCS12 -destkeystore keystore.ks -deststoretype JKS

关于android - Google Play 应用签名 : no keystore, just .p12,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50709129/

相关文章:

java - 使用或不使用targetsdkVersion 23

android - 使用 Google Play 提供的上传 key 签署 APK

android - 是什么阻止了 Google 修改我们通过应用签名服务签名的 APK?

google-play - 谷歌播放 : Declaring an App is Only for TVs

android - Google Play 预发布报告 - 资源名称

android - 将应用名称或文本链接到 Google Play 市场中的应用链接

android - 错误 : --alias must be specified using PEPK tool

android - Crashlytics 找不到我的 Fabric.properties

Android MediaRecorder setCaptureRate()与视频播放速度

java - 如何使用android中的代码从两个单声道音频文件创建立体声音频文件