2012-07-06 68 views
35

Tôi làm cách nào để lấy chi tiết chứng chỉ mà một gói ứng dụng đã được ký kết. Tôi có một loạt các apks ký với giấy chứng nhận khác nhau và tôi đang cố gắng nhóm chúng dựa trên giấy chứng nhận của họ.Lấy chi tiết chứng chỉ từ một gói ứng dụng

Tôi có thể nhận được các chi tiết hết hạn bằng cách sử dụng công cụ jarsigner và hoàn thành nhiệm vụ của mình nhưng tôi rất tò mò nếu tôi có thể lấy thêm chi tiết hoặc trích xuất khóa công khai (Tôi tin rằng nó được lưu trữ trong META-INF/cert.RSA. có thể đọc được)

+0

Bạn có thể làm điều đó [runtime] (http://stackoverflow.com/a/7632973/967142) bằng cách chiết X509Certificate từ ứng dụng (s) - cũng nên cung cấp y ou chìa khóa công khai tôi giả định. – Jens

+0

Tôi muốn làm điều đó mà không cần mã (Vui lòng không làm tổn thương tôi stackoverflow) –

+0

có thể trùng lặp của [Làm thế nào để xem danh tính của người đã ký apk trên thiết bị Android?] (Http://stackoverflow.com/questions/ 4324120/cách-để-xem-nhận dạng-của-người-ai-ký-the-apk-trên-android-thiết bị) –

Trả lời

37

Hãy thử như sau:

openssl pkcs7 -inform DER -in CERT.RSA -noout -print_certs -text 
+4

Bạn có thể nhận được một số thông tin cũng với java 'keytool':' keytool -printcert -file CERT .RSA', nhưng 'openssl' thì tiết kiệm hơn, đó là lý do tại sao tôi thích nó hơn. – pevik

30

unzip -p Name-of-apk.apk META-INF/CERT.RSA | keytool -printcert là những gì tôi sử dụng.

Nó tạo ra thông tin như chủ sở hữu, tổ chức phát hành, số sê-ri, hợp lệ thông qua, bản in bằng chứng chỉ, thuật toán chữ ký và phiên bản.

19

Dựa trên câu trả lời hiện tại, đây là dòng lệnh cho on-the-fly sử dụng openssl(giải nén & ống các CERT thay vì xác định một tùy chọn -infile):

unzip -p App.apk META-INF/CERT.RSA |openssl pkcs7 -inform DER -noout -print_certs -text 
+0

không có SHA1 – HendraWD

2

mà không cần giải nén bạn có thể sử dụng ApkSigner từ Android SDK và sau:

apksigner.jar verify --print-certs myApplication.apk 
+1

Câu trả lời hay. Lưu ý rằng bắt đầu từ Android 7, một chương trình ký mới đã được giới thiệu (V2) sẽ tạo ra các tệp APK mà không có CERT.RSA. Vì vậy, các phương pháp cũ (sử dụng openssl/keytool) sẽ không hoạt động. (xem: https://source.android.com/security/apksigning/v2) –

Các vấn đề liên quan