keytool无效的密钥库格式

时间:2018-08-31 12:35:28

标签: openssl keytool

我正在遵循有关“可信Web活动”的指南。 https://developers.google.com/web/updates/2017/10/using-twa

我现在必须使用以下命令获取应用程序证书的哈希值:

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

debug.keystore是Android Studio创建的临时密钥,Google Play不允许使用它签名的应用程序,不是吗?

所以我改为将我的key.pem和key.pk8放在keystore文件夹中,并用 keystore / key.pk8 替换了〜/ .android / debug.keystore keystore / key.pem 。 但是对于两者,它都表示无效的密钥库格式

我创建了这两个文件

openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out request.pem
openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem
openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt

一个类似问题的答案告诉将 -storetype pkcs12 添加到keytool命令,但是随后出现此错误:

  

erreur keytool:java.io.IOException:toDerInputStream拒绝标记   类型45 java.io.IOException:toDerInputStream拒绝标记类型45           在sun.security.util.DerValue.toDerInputStream(DerValue.java:881)           在sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:193   9)           在java.security.KeyStore.load(KeyStore.java:1445)           在sun.security.tools.keytool.Main.doCommands(Main.java:823)           在sun.security.tools.keytool.Main.run(Main.java:366)           在sun.security.tools.keytool.Main.main(Main.java:359)

1 个答案:

答案 0 :(得分:0)

对于其他可能遇到相同问题的人,我最终改为这样做:

我使用Android Studio创建了一个密钥库:key_store.jks

我将此文件用于无法使用的keytool命令,并且可以正常工作。

然后我按照此页面上的说明从其中制作了.pk8和.pem文件:https://roostertech.wordpress.com/2013/10/31/exporting-private-key-pk8-jks/