我有一堆.keystore文件,需要找到一个具有特定CN和别名的文件。有办法做到这一点与keytool, jarsigner或其他工具?我找到了一种方法来检查特定的密钥存储库是否用于对特定的apk进行签名,但是我还需要获得每个文件中的别名和证书名称。
当前回答
在Windows上:
Keytool -v -list -keystore my_keystore | findstr my_string
参考:
CMD搜索目录以查找文件中的字符串
其他回答
为了得到所有的细节,我不得不在romaintaz的答案中添加-v选项:
keytool -v -list -keystore <FileName>.keystore
keytool -v -list -cacerts -alias cert1
这适用于我,当我检查证书添加到jdk-11的别名,并检查它是否添加在windows机器上
您可以运行以下命令来列出您的密钥存储库文件的内容(以及别名):
keytool -v -list -keystore .keystore
如果你正在寻找一个特定的别名,你也可以在命令中指定它:
keytool -list -keystore .keystore -alias foo
如果没有找到别名,它将显示一个异常:
keytool错误:java.lang.Exception: Alias不存在
在类似bash的环境中,您可以使用:
keytool -list -v -keystore cacerts.jks | grep 'Alias name:' | grep -i foo
该命令由三部分组成。如上所述,第一部分将列出所有受信任的证书和所有详细信息,这就是为什么第二部分只过滤这些详细信息中的别名信息。最后在第三部分,你可以搜索一个特定的别名(或它的一部分)。-i打开不区分大小写模式。因此,给定的命令将产生包含'foo'、f.e. foo、123_FOO、fooBar等模式的所有别名。获取更多信息man grep。
我们可以使用简单的命令从Certs获取证书列表,并在结果输出中搜索您的别名。
keytool -list -keystore C:/swdtools/jdk1.7.0_67/jre/lib/security/cacerts
推荐文章
- Java整数到字节数组
- 如何设置Windows环境下Java的环境变量
- Java Swing revalidate() vs repaint()
- Java中文件中的行数
- 何时在Android中使用RxJava,何时使用Android架构组件中的LiveData ?
- 如何在Android项目中使用ThreeTenABP
- 指定的子节点已经有一个父节点。你必须先在子对象的父对象上调用removeView() (Android)
- 我的Android设备没有出现在adb设备列表中
- 在没有安装apk的情况下获取Android .apk文件的VersionName或VersionCode
- Fragment onResume() & onPause()不会在backstack上被调用
- 如何设置基线对齐为假提高性能在线性布局?
- 对于一个布尔字段,它的getter/setter的命名约定是什么?
- 如何获得当前屏幕方向?
- 如何在Android中渲染PDF文件
- 如何计算一个元素在列表中出现的次数