导出证书文件cer,可以导入到windows中
keytool -export -alias tomcat -keystore tomcat.jks -storepass 123456 -file ca.cer
导入到jdk的根证书库中
keytool -import -keystore /usr/java/jdk1.8.0_121/jre/lib/security/cacerts -storepass changeit -file ca.cer -noprompt
从jdk根证书库中删除某个证书
keytool -delete -keystore /usr/java/jdk1.8.0_121/jre/lib/security/cacerts -storepass changeit -alias tomcat
转换cer到crt格式(openssl), 三种方式都可以
keytool -printcert -rfc -file ca.cer > ca.crt keytool -list -rfc -keystore tomcat.jks -storepass 123456 openssl x509 -inform der -in ca.cer -out ca.crt
导入到linux的根证书中
cat ca.crt >> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
生成csr文件 (用于向第三方CA机构认证)
keytool -certReq -alias tomcat -keystore tomcat.jks -storepass 123456 -file ca.csr
查看keystore信息
keytool -list -keystore tomcat.jks -storepass 123456 keytool -list -v -keystore tomcat.jks -storepass 123456 keytool -list -rfc -keystore tomcat.jks -storepass 123456 keytool -printcert -rfc -file ca.cer keytool -printcert -v -file ca.cer
使用命令二次签名
使用命名二次签名:jarsigner -verbose -keystore [keystorePath-密钥文件] -signedjar [apkOut-签名后文件] [apkIn-待签名文件] [alias-别名] 例子:jarsigner -verbose -keystore m123.keystore -signedjar demo_signed.apk demo_unsign.apk mmm
使用apksigner签名
zipalign -v 4 jiagu.apk jiagu_zip.apk 例子:apksigner sign -verbose --ks hi.jks --v1-signing-enabled true --v2-signing-enabled true --ks-key-alias 签名别名 --ks-pass pass:签名库密码 --key-pass pass:签名别名密码 --out jiagu_zip_sign.apk 待签名.apk
合并两个keystore
-
生成aaa.jks keytool -genkey -keyalg RSA -validity 3650 -alias aaa -keystore aaa.jks -storepass 123456 -keypass 123456 -dname "cn=www.zfl.com,ou=otokaze,o=otokaze,l=gd,st=gz,c=cn"
-
生成bbb.jks keytool -genkey -keyalg RSA -validity 3650 -alias bbb -keystore bbb.jks -storepass 123456 -keypass 123456 -dname "cn=www.zfl.com,ou=otokaze,o=otokaze,l=gd,st=gz,c=cn"
-
合并 aaa.jks 到 bbb.jks(注意bbb中2个密码设置一样,合并后可修改) keytool -importkeystore -srckeystore aaa.jks -srcstorepass 123456 -destkeystore bbb.jks -deststorepass 123456 deststoretype pkcs12
-
查看是否合并成功bbb.jks keytool -list -v -keystore bbb.jks -storepass 123456
修改签名库密码
修改密码的命令:keytool -storepasswd -keystore android.keystore 命令执行后会提示证书的当前密码和新密码及其确认。
修改别名alias
keytool -changealias -keystore android.keystore -alias my_name -destalias androiddebugkey my_name是证书中当前的alias,-destalias指定的是要修改为的alias
修改别名密码
keytool -keypasswd -keystore my.keystore -alias androiddebugkey 这一步执行后会提示输入keystore密码,alias密码,然后提示输入新的alias密码
修改证书中机构等信息
keytool -selfcert -alias myalias -keypass aliaspassword -keystore my.jks -storepass jkspassword -dname "CN=FirstAndLastName1, OU=OrganizationalUnit1, O=Organization1, L=CityOrLocality1, ST=StateOrProvince1, C=CountryCode1, EMAILADDRESS=email1@gmail.com"