从apk获取证书详细信息

Rav*_*yas 48 android signing certificate

我如何获取apk签名的证书的详细信息.我有一堆apks用不同的证书签名,我试图根据他们的证书对它们进行分组.

我可以使用jarsigner获取证书到期详细信息并完成我的任务但我很好奇我是否可以获取更多细节或提取公钥(我相信它存储在META-INF/cert.RSA但不可读)

Yur*_*ury 52

请尝试以下方法:

openssl pkcs7 -inform DER -in CERT.RSA -noout -print_certs -text
Run Code Online (Sandbox Code Playgroud)

  • 您也可以使用java的`keytool`获取一些信息:`keytool -printcert -file CERT.RSA`,但`openssl`更详细,这就是我喜欢它的原因. (8认同)

小智 37

unzip -p Name-of-apk.apk META-INF/CERT.RSA | keytool -printcert 是我用过的.

它产生诸如所有者,发行者,序列号,有效通过,证书指纹,签名算法和版本之类的信息.


eye*_*hUp 23

根据现有的答案,这里是动态使用的命令行openssl (解压缩和管道证书而不是定义-infile选项):

unzip -p App.apk META-INF/CERT.RSA |openssl pkcs7 -inform DER -noout -print_certs -text
Run Code Online (Sandbox Code Playgroud)


Ewo*_*oks 10

如果没有解压缩,您可以使用Android SDK中的ApkSigner并执行以下操作:

apksigner.jar verify --print-certs myApplication.apk
Run Code Online (Sandbox Code Playgroud)

  • 好答案。请注意,从Android 7开始,引入了新的签名方案(V2),该方案将生成没有CERT.RSA的APK文件。因此,旧方法(使用openssl / keytool)将无法工作。(请参阅:https://source.android.com/security/apksigning/v2) (2认同)

Ran*_*ku' 6

最简单的:

keytool -printcert -jarfile file.apk
Run Code Online (Sandbox Code Playgroud)

这也适用于Android应用程序捆绑包(.aab)