web-dev-qa-db-ja.com

Androidアプリの「./META-INF/CERT.RSA」ファイルには何が含まれていますか?

私は暗号証明書を初めて使用し、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-----

次のコマンドを使用すると、この証明書のメタ情報を取得できます。

>> 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

「CERT.RSA」からより完全な情報を取得するために使用できる他のツール/コマンドはありますか?

ご意見ありがとうございます!

22
user3361508

cert.pemファイルを取得したら、次のコマンドを使用して公開キーを取得できます。

openssl x509 -in cert.pem -noout -text

よろしく、

ジュゼッペ

7
g.anzalone

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

13
Ted
  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

しかし、ああ、いや、一致しません!!!

2
hanzhen

これで問題が解決するはずです

 openssl pkcs7 -inform DER -in CERT.RSA -noout -print_certs 
1
zixcool