使用一个命令创建密钥库文件

Pet*_*erG 12 java linux android keystore command-line-interface

我有一个脚本,它为Android应用程序创建并签署密钥库文件.

它工作得很好,但我宁愿让它在没有人为干预的情况下运行

我必须创建密钥库:

keytool -genkey -v -keystore my-release-key.keystore
-alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Run Code Online (Sandbox Code Playgroud)

然后,这会提示我使用终端手动输入以下值:密钥库密码,全名,组织单位,组织名称,城市,州,县代码,密钥密码.

我要签署的应用程序:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1
-keystore my-release-key.keystore my_application.apk alias_name
Run Code Online (Sandbox Code Playgroud)

然后,这会提示我输入密钥库的密码.

无论如何,我可以将这些值作为参数传递,以便完整的脚本运行而无需任何其他交互吗?

PS:我正在使用ubuntu 14.04 LTS.

谢谢你的时间 :)

San*_*eev 38

您可以执行以下操作来生成密钥库:

keytool -genkey -alias replserver \
    -keyalg RSA -keystore keystore.jks \
    -dname "CN=Mark Smith, OU=JavaSoft, O=Sun, L=Cupertino, S=California, C=US" \
    -storepass password -keypass password
Run Code Online (Sandbox Code Playgroud)

这是一个很好的参考:https://pubs.vmware.com/continuent/tungsten-replicator-3.0/deployment-ssl-stores.html.对于jarsigner,密钥库密码有"storepass"参数.如果你把两者放在一个脚本中你应该是好的.

  • 添加`-deststoretype pkcs12`以现在推荐的行业标准`PKCS12`格式创建密钥库.另一个不错的选择是`-keysize 4096` (5认同)