我有一堆.keystore文件,需要找到一个具有特定CN和别名的文件。有办法做到这一点与keytool, jarsigner或其他工具?我找到了一种方法来检查特定的密钥存储库是否用于对特定的apk进行签名,但是我还需要获得每个文件中的别名和证书名称。


当前回答

在类似bash的环境中,您可以使用:

keytool -list -v -keystore cacerts.jks | grep 'Alias name:' | grep -i foo

该命令由三部分组成。如上所述,第一部分将列出所有受信任的证书和所有详细信息,这就是为什么第二部分只过滤这些详细信息中的别名信息。最后在第三部分,你可以搜索一个特定的别名(或它的一部分)。-i打开不区分大小写模式。因此,给定的命令将产生包含'foo'、f.e. foo、123_FOO、fooBar等模式的所有别名。获取更多信息man grep。

其他回答

这将列出所有证书:

keytool -list -keystore "$JAVA_HOME/jre/lib/security/cacerts"

cmd:

keytool -list -keystore 'keystoreName'

然后按回车键 然后CMD将提示您输入密钥库密码

CMD在输入时不会在屏幕上显示密码 所以只要输入正确的密码——小心点——然后再按回车。

或者你可以用:

keytool -list -keystore 'keystoreName' -storepass 'type your keystore passwd'

对于Keys的完整信息,只需添加-v:

keytool -v -list -keystore 'keystoreName' -storepass 'type your keystore passwd'

我们可以使用简单的命令从Certs获取证书列表,并在结果输出中搜索您的别名。

keytool -list -keystore C:/swdtools/jdk1.7.0_67/jre/lib/security/cacerts

也有控制台证书管理器编写为单文件shell脚本(开源):

https://dev.to/sfkulyk/writing-panel-manager-for-certificate-keystore-in-linux-shell-187b

可以浏览,复制,删除,重命名和比较密钥库。

在Windows上:

Keytool -v -list -keystore my_keystore | findstr my_string

参考:

CMD搜索目录以查找文件中的字符串