Android KitKat에 앞서 새로운 인증서를 설치하려면 기기를 루팅해야합니다.
Android KitKat (4.0)에서 Nougat (7.0) 까지 가능하고 쉽습니다. 루트가없는 장치에 Charles Web Debbuging Proxy 인증서를 설치하고 SSL 트래픽을 스니핑 할 수있었습니다.
http://wiki.cacert.org/FAQ/ImportRootCert 에서 추출
Android 버전 Gingerbread & Froyo를 사용하는 Android 버전 4.0 이전에는 기본적으로 모든 CA ( 'system') 인증서를 신뢰하는 신뢰 저장소를 포함하는 단일 읽기 전용 파일 (/system/etc/security/cacerts.bks)이있었습니다. 기계적 인조 인간. 시스템 앱과 Android SDK로 개발 된 모든 애플리케이션이 모두 사용합니다. Android Gingerbread, Froyo, ...에 CAcert 인증서를 설치할 때 다음 지침을 사용하십시오.
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 프록시 웹 사이트 에서이 추출을 참조하십시오 .
Android N부터 Charles SSL 프록시에서 생성 한 SSL 인증서를 신뢰하려면 앱에 구성을 추가해야합니다. 즉, 제어하는 앱에서만 SSL 프록시를 사용할 수 있습니다.
Charles를 신뢰하도록 앱을 구성하려면 앱에 네트워크 보안 구성 파일을 추가해야합니다. 이 파일은 시스템 기본값을 재정 의하여 앱이 사용자가 설치 한 CA 인증서 (예 : Charles Root Certificate)를 신뢰할 수 있도록합니다. 프로덕션 빌드가 기본 신뢰 프로파일을 사용하도록 애플리케이션의 디버그 빌드에만 적용되도록 지정할 수 있습니다.
res / xml / network_security_config.xml 파일을 앱에 추가하십시오 :
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
그런 다음 앱 매니페스트에이 파일에 대한 참조를 다음과 같이 추가하십시오.
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>