ก่อน Android KitKat คุณต้องรูทอุปกรณ์ของคุณเพื่อติดตั้งใบรับรองใหม่
ตั้งแต่ Android KitKat (4.0) จนถึง Nougat (7.0)เป็นไปได้และง่ายดาย ฉันสามารถติดตั้งใบรับรอง Charles Web Debbuging Proxy บนอุปกรณ์ที่ไม่ได้รูทและสูดดมปริมาณการใช้ SSL
สารสกัดจากhttp://wiki.cacert.org/FAQ/ImportRootCert
ก่อน Android เวอร์ชัน 4.0 ที่ใช้ Android เวอร์ชัน Gingerbread & Froyo จะมีไฟล์แบบอ่านอย่างเดียว (/system/etc/security/cacerts.bks) ไฟล์เดียวที่มี Trust store พร้อมใบรับรอง CA ('system') ทั้งหมดที่เชื่อถือได้โดยค่าเริ่มต้น Android ทั้งแอประบบและแอปพลิเคชันทั้งหมดที่พัฒนาด้วย Android SDK ใช้สิ่งนี้ ใช้คำแนะนำเหล่านี้ในการติดตั้งใบรับรอง CAcert บน Android Gingerbread, Froyo, ...
เริ่มตั้งแต่ Android 4.0 (Android ICS / 'Ice Cream Sandwich', Android 4.3 'Jelly Bean' และ Android 4.4 'KitKat') ใบรับรองที่เชื่อถือได้ของระบบจะอยู่บนพาร์ติชันระบบ (อ่านอย่างเดียว) ในโฟลเดอร์ "/ system / etc / ความปลอดภัย / 'เป็นไฟล์แต่ละไฟล์ อย่างไรก็ตามขณะนี้ผู้ใช้สามารถเพิ่มใบรับรอง 'ผู้ใช้' ของตนเองได้อย่างง่ายดายซึ่งจะถูกเก็บไว้ใน '/ data / misc / keychain / certs-added'
ใบรับรองที่ติดตั้งระบบสามารถจัดการได้บนอุปกรณ์ Android ในการตั้งค่า -> ความปลอดภัย -> ใบรับรอง -> ส่วน "ระบบ" ในขณะที่ใบรับรองที่เชื่อถือได้ของผู้ใช้จะอยู่ในส่วน "ผู้ใช้" ที่นั่น เมื่อใช้ใบรับรองที่เชื่อถือได้ของผู้ใช้ Android จะบังคับให้ผู้ใช้อุปกรณ์ Android ใช้มาตรการด้านความปลอดภัยเพิ่มเติม: การใช้รหัส PIN การล็อกรูปแบบหรือรหัสผ่านเพื่อปลดล็อกอุปกรณ์เป็นสิ่งจำเป็นเมื่อใช้ใบรับรองที่ผู้ใช้จัดหา
การติดตั้งใบรับรอง CAcert เป็นใบรับรอง 'ผู้ใช้ที่เชื่อถือได้' นั้นง่ายมาก การติดตั้งใบรับรองใหม่เป็นใบรับรอง 'ระบบที่เชื่อถือได้' จำเป็นต้องใช้งานมากขึ้น (และต้องเข้าถึงรูท) แต่มีข้อดีคือหลีกเลี่ยงข้อกำหนดหน้าจอล็อกของ Android
ตั้งแต่ Android N เป็นต้นไปมันจะยากขึ้นเล็กน้อยดูสารสกัดนี้จากเว็บไซต์ Charles proxy :
สำหรับ Android N คุณต้องเพิ่มการกำหนดค่าให้กับแอปของคุณเพื่อให้แอปเชื่อถือใบรับรอง SSL ที่สร้างโดย Charles SSL Proxying ซึ่งหมายความว่าคุณสามารถใช้ SSL Proxying กับแอปที่คุณควบคุมได้เท่านั้น
ในการกำหนดค่าแอปให้เชื่อถือ Charles คุณต้องเพิ่มไฟล์การกำหนดค่าความปลอดภัยเครือข่ายลงในแอปของคุณ ไฟล์นี้สามารถลบล้างค่าเริ่มต้นของระบบทำให้แอปของคุณเชื่อถือใบรับรอง CA ที่ผู้ใช้ติดตั้งไว้ (เช่น Charles Root Certificate) คุณสามารถระบุว่าสิ่งนี้ใช้ได้เฉพาะในบิลด์การดีบักของแอ็พพลิเคชันของคุณเพื่อให้บิลด์การผลิตใช้โปรไฟล์ความน่าเชื่อถือดีฟอลต์
เพิ่มไฟล์ res / xml / network_security_config.xml ในแอปของคุณ:
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
จากนั้นเพิ่มการอ้างอิงไปยังไฟล์นี้ในไฟล์ Manifest ของแอปดังนี้:
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>