生成签名证书
使用keytool -genkey命令生成证书:
keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
- testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
- test.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
- 36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期 回车后会提示输入证书密码及信息,规范填写,可能会影响上架应用市场;
可以使用以下命令查看:
keytool -list -v -keystore test.keystore
会输出以下格式信息:
其中证书指纹信息(Certificate fingerprints):
-
MD5
证书的MD5指纹信息(安全码MD5) -
SHA1
证书的SHA1指纹信息(安全码SHA1) -
SHA256
证书的SHA256指纹信息(安全码SHA245)
有些时候需要把keystore文件转换成pem文件,比如快应用就需要pem文件并与原生签名一致,下面是转换方法:
将keystore文件转换为pkcs12格式的文件
keytool -importkeystore -srckeystore user.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12
输入生成keystore时的密码
最后发现同一目录下生成tmp.p12文件
将PKCS12格式的文件 转换成pem
openssl pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem
同样输入keystore的密码
最后同一目录下生成 tmp.rsa.pem
生成certificate.pem 和private.pem 用记事本将第四步生成的tmp.rsa.pem打开,会发现里面包含certificate 和 private 内容。
复制“BEGIN CERTIFICATE” (包含)至“END CERTIFICATE” (包含)的内容到(新建个文件) certificate.pem
复制 “BEGIN RSA PRIVATE KEY”(包含)至 “END RSA PRIVATE KEY” (包含)的内容 到(同上) private.pem
这样就生成了两个pem文件:一个公钥一个私钥。这就是快应用工程最后需要的签名文件。
在快应用工程目录下的“sign”目录内生成的两个pem文件copy到该目录下就可以打包了。
注:
1、有些时候装的java sdk查看证书时没有MD5信息,有时候又需要,这是因为sdk版本太高导致,可以选择降低版本至:jdk1.8.0,分享一个可用的sdk链接:
链接: pan.baidu.com/s/1Rlg2Ii7Q… 提取码: drm1
2、openssl 将p12文件 转换成pem文件时,如果报错,也可能是openssl版本太高导致,推荐使用1.1.1版本。openssl 下载地址:slproweb.com/products/Wi…