Network Security Configuration trên Android
Cho phép ứng dụng khai báo cài đặt an ninh mạng trong file XML mô tả, không sửa code. Ví dụ: chỉ tin cậy chứng chỉ tự ký (self-signed) hoặc tập hợp CA công khai hạn chế.
Chứng chỉ mạng trên Android
Chứng chỉ tin cậy dùng cho VPN, Wi-Fi, ad-hoc, Exchange server và các ứng dụng hỗ trợ.
SSL Pinning (Ghim chứng chỉ SSL)
Ghim public key hoặc chứng chỉ của host để thiết lập kết nối tin cậy, ngăn chặn tấn công Man-in-the-Middle. Kiểm tra bằng hello-pinnedcerts hoặc Android SSL Trust Killer.
Cleartext Traffic (Truyền dữ liệu rõ)
- cleartextTrafficPermitted: Cờ trong file XML cấu hình an ninh mạng. Android 9+ mặc định chặn cleartext.
- Cleartext traffic: Dữ liệu không mã hóa (HTTP). Dễ bị nghe lén, sửa nội dung.
Triển khai trên Flutter
Thêm file XML vào `android/app/src/main/res/xml/`. Trong `AndroidManifest.xml` thẻ `
`io.flutter.network-policy` trỏ đến resource ID của file XML.
Chứng chỉ Wi-Fi trên Android
Cài đặt: Settings → Wi-Fi → Advanced → Install certificates.
Tải chứng chỉ mạng
Settings → Security → Advanced → Encryption & credentials → Install a certificate → Wi-Fi certificate → chọn file → đặt tên → OK.
Sửa lỗi "Cleartext traffic not permitted"
Thêm `android:usesCleartextTraffic="true"` trong `AndroidManifest.xml` HOẶC trong file Network Security Config đặt `cleartextTrafficPermitted="true"` cho domain cụ thể.
Thuộc tính usesCleartextTraffic
Đặt `android:usesCleartextTraffic="false"` trong Manifest để cấm hoàn toàn cleartext traffic trong tương lai.