美文网首页Android开发经验谈工具癖
笔记 | 使用Keytool管理密钥和证书

笔记 | 使用Keytool管理密钥和证书

作者: 彭旭锐 | 来源:发表于2019-07-24 20:15 被阅读58次

生成数字证书

  • 命令行执行:
    keytool -genkey -alias [你的数字证书别名] -keyalg RSA -validity 36500 -keystore [你的密钥库文件名]
    
  • 输入密钥库口令(建议妥善记录):
  • 连续回车跳过几个配置,输入"y"确认
  • 输入密钥口令(如果保持和密钥库口令相同,按回车)

1、如果在 C:\User[你的计算机名] 下没有 [你的密钥库文件名].keystore 文件,上述命令将在该目录下新建一个[你的密钥库文件名].keystore文件(密钥库文件)
2、密钥库口令是访问 [你的密钥库] 的密码,密钥口令指的是 [你的数字证书] 的密码


列举数字证书

  • 命令行执行:
    keytool -list -keystore [你的密钥库路径]
    如:keytool -list -keystore C:\Users\XuRui\[你的密钥库文件名]
    
  • 输入密钥库口令
  • 输出结果:
    密钥库类型: jks
    密钥库提供方: SUN
    
    您的密钥库包含 1 个条目
    
    [你的数字证书别名], 2019-4-16, PrivateKeyEntry,
    证书指纹 (SHA1): F3:D6:######:1B:F9
    

提取SHA1证书指纹

  • 命令行执行:
    keytool -exportcert -list -v -alias [你的数字证书别名] -keystore [你的密钥库路径]
    如:keytool -exportcert -list -v -alias [你的数字证书别名]-keystore C:\Users\XuRui\[你的密钥库文件名]
    
  • 输入密钥库口令
  • 输出结果:
    别名: [你的数字证书别名]
    创建日期: 2019-4-16
    条目类型: PrivateKeyEntry
    证书链长度: 1
    证书[1]:
    所有者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
    发布者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
    序列号: [序列号]
    有效期为 Tue Apr 16 11:34:22 CST 2019 至 Thu Mar 23 11:34:22 CST 2119
    证书指纹:
             MD5:  36:18:######:2D:65
             SHA1: F3:D6:######:1B:F9
             SHA256: D5:E3:######:36:1A
    签名算法名称: SHA256withRSA
    主体公共密钥算法: 2048 位 RSA 密钥
    版本: 3
    // 以下省略
    

提取密钥散列

  • 命令行执行:
    keytool -exportcert -alias [你的数字证书别名] -keystore [你的密钥库路径] | openssl sha1 -binary | openssl base64
    如:keytool -exportcert -alias [你的数字证书别名]-keystore C:\Users\XuRui\[你的密钥库文件名] | openssl sha1 -binary | openssl base64
    
  • 输入秘钥口令
  • 输出结果:
    8KC/######CuZ3=
    

APK签名

  • build.gradle中配置:
android{
    ...
    signingConfigs {
        release {//构建变体名
            keyAlias '[密钥/数字证书别名]'
            keyPassword '[密钥密码]'
            storePassword '[密钥库密码]'
            storeFile file('release/[密钥库文件名]') //密钥库文件的相对于项目根目录的路径
        }
    }
}

查看APK签名

  • 用WinRAR等工具解压apk,进入META-INF文件夹,其中RSA文件为签名信息
  • 命令行执行:
    keytool -printcert -file META-INF/[RSA文件名].RSA
    
  • 输出结果:
    所有者: [所有者]
    发布者: [发布者]
    序列号: [序列号]
    有效期为 Sat Sep 25 15:37:04 CST 2010 至 Sun Jun 28 15:37:04 CST 2065
    证书指纹:
             MD5:  84:6B:######:87:74
             SHA1: 23:27:######:05:33
             SHA256: BF:46:######:0A:B4
    签名算法名称: SHA1withRSA
    主体公共密钥算法: 1024 位 RSA 密钥
    版本: 3
    

推荐阅读


感谢喜欢!你的点赞是对我最大的鼓励!有任何疑问都可以在下方评论区留言哦!

相关文章

  • KeyTool操作

    一、keytool的概念 keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用...

  • 笔记 | 使用Keytool管理密钥和证书

    Keytool:JDK中自带(路径:%JAVA_HOME%\bin) OpenSSL下载地址:http://slp...

  • KeyTool GUI 创建jks证书库

    KeyTool简介 Keytool 是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(ce...

  • Keytool签名查看

    Keytool是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)...

  • Keytool 证书工具使用小结

    Keytool 是密钥和证书的管理工具, 用来管理密钥,X.509 证书链, 可信证书的密钥库(数据库) 相关资料...

  • 使用keytool生成SSL证书

    1. keytool命令 keytool密钥和证书管理工具 命令: -certreq 生成证...

  • 常用的Java Keytool Keystore命令

    Java keytool是密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自...

  • 命令行生成Android jks签名文件并获取jks信息

    Java keytool是密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自...

  • KeyTool证书管理

    KeyTool 证书管理 构建自签名证书 申请数字证书之前,需要在密钥库中以别名的方式生成本地数字证书,建立相应的...

  • ActiveMQ配置ssl安全连接

    配置ssl安全连接 使用keytool工具生成密钥和证书文件 **生成服务端私钥,并导入到服务端keyStore文...

网友评论

    本文标题:笔记 | 使用Keytool管理密钥和证书

    本文链接:https://www.haomeiwen.com/subject/rjbfrctx.html