Keytool证书工具使用

268 阅读2分钟

导出证书文件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

  1. 生成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"

  2. 生成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"

  3. 合并 aaa.jks 到 bbb.jks(注意bbb中2个密码设置一样,合并后可修改) keytool -importkeystore -srckeystore aaa.jks -srcstorepass 123456 -destkeystore bbb.jks -deststorepass 123456 deststoretype pkcs12

  4. 查看是否合并成功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"