Android应用程序的"./META-INF/CERT.RSA"文件中包含哪些内容?

use*_*508 23 android digital-certificate digital-signature android-applicationinfo

我是加密证书的新手,我正在试图找出Android应用程序的"./META-INF"文件夹下的"CERT.RSA"文件的组件.

据我了解,"CERT.RSA"用于验证同一目录下"CERT.SF"文件的签名.它应该包括证书元信息(主题,发行者,序列号等),由开发者私钥签名的"CERT.SF"签名,以及用于验证签名的公钥.

如何从"CERT.RSA"文件中获取上述组件?特别是,如何从"CERT.RSA"中检索公钥?

我尝试使用以下命令来显示签名证书.当人们谈论签名证书时,是否(以下输出)公钥或签名签名?

>> openssl pkcs7 -inform DER -print_certs -out cert.pem -in CERT.RSA
>> cat cert.pem

subject=/C=SE/ST=Kista/L=Kista/O=Javsym/OU=Mobile Visuals/CN=Eyvind Almqvist
issuer=/C=SE/ST=Kista/L=Kista/O=Javsym/OU=Mobile Visuals/CN=Eyvind Almqvist
-----BEGIN CERTIFICATE-----
MIICWzCCAcSgAwIBAgIETVPFgjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJT
RTEOMAwGA1UECBMFS2lzdGExDjAMBgNVBAcTBUtpc3RhMQ8wDQYDVQQKEwZKYXZz
eW0xFzAVBgNVBAsTDk1vYmlsZSBWaXN1YWxzMRgwFgYDVQQDEw9FeXZpbmQgQWxt
cXZpc3QwIBcNMTEwMjEwMTEwMTIyWhgPMjA2MTAxMjgxMTAxMjJaMHExCzAJBgNV
BAYTAlNFMQ4wDAYDVQQIEwVLaXN0YTEOMAwGA1UEBxMFS2lzdGExDzANBgNVBAoT
BkphdnN5bTEXMBUGA1UECxMOTW9iaWxlIFZpc3VhbHMxGDAWBgNVBAMTD0V5dmlu
ZCBBbG1xdmlzdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAjwLlwflQ2zoC
1EeCkICSqYTSkdv6Xj0YCqoQsuLJw0pwDbz5qRos61Ub0ZxWCa4TfXu1NJmuD4j+
LwQYvAR6JO985y4zjH1Ee5qZmHDC5yoSRko6P8B4KfmBm8E8CryhUjN7vNLUfG2o
XrmXK+g5KKTx3wzWlb4+AdAS7/NlDVkCAwEAATANBgkqhkiG9w0BAQUFAAOBgQAS
CxdfvR/LHPlULkCsoGw9/Q2ZhsTlPr7fZw32sef9vnz1hqd6iMDsLC2c34yRVJfb
t6dZCVO9/gWMURIZ7NmT36uBFAUB+XkGK+5/ot3YEJicEwmk/Nvj1Tzo3PjBX3ZD
lLBpEPgc3IUOhgMyzDR+ytgFlH0MkDps6FApunUpiQ==
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

通过使用以下命令,我可以获得此证书的元信息:

>> keytool -printcert -file CERT.RSA

Owner: CN=Eyvind Almqvist, OU=Mobile Visuals, O=Javsym, L=Kista, ST=Kista, C=SE
Issuer: CN=Eyvind Almqvist, OU=Mobile Visuals, O=Javsym, L=Kista, ST=Kista, C=SE
Serial number: 4d53c582
Valid from: Thu Feb 10 06:01:22 EST 2011 until: Fri Jan 28 06:01:22 EST 2061
Certificate fingerprints:
     MD5:  58:94:63:63:C1:ED:4C:02:CE:90:CE:64:DA:D7:4A:E4
     SHA1: 17:5C:44:E3:A6:1A:F2:4F:A5:78:6E:C7:F0:42:4C:AD:E6:F5:CA:DF
     Signature algorithm name: SHA1withRSA Version: 3
Run Code Online (Sandbox Code Playgroud)

是否有其他工具/命令可用于从"CERT.RSA"获取更完整的信息?

非常感谢任何投入!

Ted*_*Ted 14

如果您只想从CERT.RSA文件中获取公钥的一部分,可以尝试以下方法:

  1. 将CERT.RSA转换为标准pem文件:

openssl pkcs7 -in CERT.RSA -inform DER -print_certs -out cert.pem

  1. 从pem文件中获取公钥:

openssl x509 -in cert.pem -pubkey -noout


小智 8

获得cert.pem文件后,可以使用以下命令获取公钥:

openssl x509 -in cert.pem -noout -text

问候,

朱塞佩


小智 6

  1. 将 CERT.RSA 转换为标准 pem 文件:

openssl pkcs7 -in CERT.RSA -inform DER -print_certs -out cert.pem

  1. 从 pem 文件获取公钥:

openssl x509 -in cert.pem -pubkey -noout

  1. 将公钥保存到cert_pub.pem和签名信息sign_info文件中

openssl x509 -noout -text -in cert.pem

  1. 验证哈希值

openssl rsautl -verify -inkey cert_pub.pem -pubin -in sign_info -hexdump -raw

openssl dgst -sha256 CERT.RSA

但是,哦不,不匹配!


zix*_*ool 6

这应该可以解决你的问题

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