/**
* [签名文件生成]
*/
命令:keytool -genkey -alias 证书别名 -keyalg RSA -keysize 2048 -validity 有效天数 -keystore 输出名称.keystore
示例:keytool -genkey -alias certificateAlias -keyalg RSA -keysize 2048 -validity 36500 -keystore outputName.keystore
/**
* [签名文件导p12]
* [签名文件导cer]
*/
命令:keytool -importkeystore -srckeystore 签名文件.keystore -destkeystore 输出名称.p12 -srcstoretype JKS -deststoretype PKCS12 -srcalias 证书别名 -deststorepass 私钥密码
示例:keytool -importkeystore -srckeystore signatureFile.keystore -destkeystore outputName.p12 -srcstoretype JKS -deststoretype PKCS12 -srcalias certificateAlias -deststorepass privateKeyPassword
/**
* [p12提取原始RSA秘钥]
*/
命令:openssl pkcs12 -in E:\certificate\你的证书.p12 -nocerts -nodes -out rsa_origin.key
示例:openssl pkcs12 -in E:\certificate\yourCertificate.p12 -nocerts -nodes -out rsa_origin.key
/**
* [原始RSA秘钥提取公钥]
*/
命令:openssl rsa -in rsa_origin.key -pubout -out rsa_public_key.pem
/**
* [原始RSA秘钥提取私钥]
*/
pkcs1.pem | P1命令:openssl rsa -in rsa_origin.key -out rsa_pkcs1.pem
pkcs8.pem | P8命令:openssl pkcs8 -topk8 -inform PEM -in rsa_pkcs1.pem -outform PEM -out rsa_private_pkcs8.pem -nocrypt
/**
* [证书查看指纹]
*/
p12 | 命令:keytool -list -v -storetype PKCS12 -keystore 证书文件.p12
apk | 命令:keytool -printcert -jarfile 包名文件.apk
keystore | 命令:keytool -list -v -keystore 证书文件.keystore
keystore | 命令:keytool -list -v -keystore 证书文件.keystore -alias 证书别名
/**
* [apk加固重新签名]
*/
CD进入Program Files\Java\jdk1.x.x_xx\bin目录,未签包名.apk放入该目录
命令:jarsigner -verbose -keystore 证书位置 [-tsa tsa地址] -signedjar 输出包名.apk 未签包名.apk 证书别名
无-tsa示例A:jarsigner -verbose -keystore E:/certificate/yourCertificate.keystore -signedjar outputPackageName.apk unsignedPackageName.apk certificateAlias
有-tsa示例B:jarsigner -verbose -keystore E:/certificate/yourCertificate.keystore -tsa http://sha256timestamp.ws.symantec.com/sha256/timestamp -signedjar outputPackageName.apk unsignedPackageName.apk certificateAlias