φόντο
Όταν χρησιμοποιείτε λογισμικό καταγραφής πακέτων (λαμβάνοντας ως παράδειγμα τον Charles) για την καταγραφή του αιτήματος https της εφαρμογής, τόσο το Android όσο και ο Charles έχουν εγκαταστήσει σωστά το πιστοποιητικό, αλλά η σύλληψη πακέτων αποτυγχάνει και αναφέρεται σφάλμα:
Αποτυχία χειραψίας SSL υπολογιστή-πελάτη: Παρουσιάστηκε άγνωστο πρόβλημα κατά την επεξεργασία του πιστοποιητικού (certificate_unknown)
Αιτία
Μετά το Android7.0, το πιστοποιητικό CA που προστίθεται στο σύστημα από προεπιλογή δεν είναι αξιόπιστο:
Για να παρέχουν μια πιο συνεπή και πιο ασφαλή εμπειρία σε όλο το οικοσύστημα Android, ξεκινώντας από το Android Nougat, οι συμβατές συσκευές εμπιστεύονται μόνο τις τυποποιημένες αρχές έκδοσης πιστοποιητικών συστήματος που διατηρούνται στο AOSP .
Σύνδεσμος τεκμηρίωσης:https://android-developers.googl ... ed-certificate.html
Αυτό σημαίνει ότι για εφαρμογές που βασίζονται σε SDK24 και νεότερη έκδοση, ακόμα κι αν έχετε εγκατεστημένο στο τηλέφωνό σας ένα πιστοποιητικό του εργαλείου καταγραφής πακέτων, δεν θα μπορείτε να καταγράψετε αιτήματα https.
λύση
1. Επίσημη λύση (απαιτείται τροποποίηση κώδικα)
Επίσημη τεκμηρίωση:https://developer.android.google ... ecurity-config.html Αναλυτική επίδειξη:https://blog.csdn.net/mrxiagc/article/details/75329629
2. Εγκαταστήστε το πιστοποιητικό του λογισμικού λήψης πακέτων ως πιστοποιητικό συστήματος (απαιτείται ROOT)
Κατάλογος πιστοποιητικών συστήματος: /system/etc/security/cacerts/
Η σύμβαση ονομασίας για κάθε πιστοποιητικό είναι η εξής:
<Certificate_Hash>. <Number> Το όνομα του αρχείου είναι μια τιμή κατακερματισμού, ενώ το επίθημα είναι ένας αριθμός.
Το όνομα αρχείου μπορεί να υπολογιστεί με την ακόλουθη εντολή:
Για παράδειγμα, εάν η τιμή κατακερματισμού που υπολογίζεται από δύο πιστοποιητικά είναι η ίδια, τότε ο αριθμός επιθήματος ενός πιστοποιητικού μπορεί να οριστεί σε 0 και ο αριθμός επιθήματος του άλλου πιστοποιητικού μπορεί να οριστεί σε 1
Βήματα:
Χρησιμοποιήστε την παραπάνω εντολή για να υπολογίσετε την τιμή κατακερματισμού του πιστοποιητικού του λογισμικού λήψης πακέτων, να το μετονομάσετε και να το αντιγράψετε στον κατάλογο πιστοποιητικών συστήματος
Προς το παρόν, θα πρέπει να μπορείτε να δείτε το πιστοποιητικό που προστέθηκε πρόσφατα στην καρτέλα Σύστημα των Ρυθμίσεων - > Ασφάλεια - > Κρυπτογράφηση και διαπιστευτήρια - > Αξιόπιστα διαπιστευτήρια
|