Mam aplikację na Androida (i jej magazyn kluczy), która została po raz pierwszy utworzona za pomocą Adobe Air. Dawno temu firma przestawiła się na zwykły zestaw SDK do systemu Android, aby opracować aplikację, ale ponieważ aplikacja była już w fazie produkcji, magazyn kluczy, którego używamy, wciąż pozostaje ten sam (stworzony przez Adobe Air).Keystore SHA1 różni się od cert.rsa SHA1 z APK
użyłem keytool wyodrębnić SHA1 w Miejscach Google API, mam coś wzdłuż tych linii:
Alias name: <alias_name>
Creation date: Jan 11, 2015
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=<company_name>, OU=, O=, C=US
Issuer: CN=<company_name>, OU=, O=, C=US
Serial number: <lotsofnumbers>
Valid from: Mon Mar 28 14:08:17 IST 2011 until: Sat Mar 29 14:08:17 IDT 2036
Certificate fingerprints:
MD5: ..:8D:F7
SHA1: ..:E6:69
SHA256: ..:38:9A
Signature algorithm name: SHA1withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
codeSigning
]
ten SHA1 (Wykańczanie przez E6: 69) nigdy nie pracował w Miejscach Google API więc sprawdziłem co było CERT.RSA apk zawierał i wyglądała prawie tak samo z wyjątkiem odcisków palców certyfikatu:
Valid from: Mon Mar 28 14:08:17 IST 2011 until: Sat Mar 29 14:08:17 IDT 2036
Certificate fingerprints:
MD5: ..:E1:30
SHA1: ..:72:74
SHA256: ..:9D:6D
Signature algorithm name: SHA1withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
codeSigning
]
Ten SHA1 (ukończeniu przez 72:74) działało idealnie i udało mi się użyć API Miejsc Google w produkcji. Ale nie rozumiem, dlaczego te dwa odciski palców certyfikatów są różne.
Mam 1000% pewności, że to ten sam plik kluczy, więc jak to możliwe?
Kiedy patrzę na androida klucz debugowania info jest skonstruowany w ten sam sposób, ale Rozszerzenia są różne:
Alias name: androiddebugkey
Creation date: Oct 26, 2014
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 3bddeb55
Valid from: Sun Oct 26 21:03:56 IST 2014 until: Tue Oct 18 22:03:56 IDT 2044
Certificate fingerprints:
MD5: ..:01:17
SHA1: ..:00:77
SHA256: ..:32:93
Signature algorithm name: SHA256withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: <weird hexa number and characters>
0010: <weird hexa number and characters>
]
]
Podsumowując moje pytania:
- Jak to możliwe, SHA1 zrobić nie pasuje?
- Czy to może być różnica między rozszerzeniami?
- Jak mogę użyć keytool (lub innego narzędzia), aby pokazać mi odpowiedni SHA1?
- Czy mogę pozbyć się tego rozszerzenia podpisywania kodu, aby powrócić do "zwykłego magazynu kluczy Android"?
o ile wiem, ta metoda będzie tylko pokazać SHA1 dla debugowania kluczy – yogipriyo