targetSdk 28, Android P 이상부터 TLS로 기본값이 변경.
Android P 변경 내용
Protecting users with TLS by default in Android P
네트워크 보안 구성
네트워크 보안 구성 (android dev summit 2019!)
Error 내용
-
Cleartext HTTP traffic to not permitted
-
not permitted by network security policy
수정 방법
-
TLS 및 HTTPS과 같은 프로토콜 사용
BUT!! 개발서버 연결 및 디버깅을 위해 SSL 인증서가 없는 서버와 통신 하고 싶을땐?
-
디버그 모드 사용
-
android:debuggable true
-
debug-overrides를 사용하여 신뢰할 수 있는 디버그 전용 CA를 지정
-
보안 예방 조치로 앱 스토어에서 디버그 가능으로 표시된 앱은 허용하지 않기 때문에 안전한편!!
-
단, 마켓 테스트 배포용으로는 사용할 수 없음
-
Step 1. AndroidManifest.xml
<application
...
android:networkSecurityConfig="@xml/network_security_config">
...
</application>
Step 2. res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="@raw/debug_cas"/>
</trust-anchors>
</debug-overrides>
</network-security-config>
-
cleartext 통신을 허용 할 domain 선언
-
특정 도메인에 대한 cleartextTrafficPermitted = “true”
-
해당 도메인에 연결할 때만 cleartextTraffic 허용
-
마켓 테스트 배포용으로는 사용할 수 있지만 추천하지 않음
-
Step 1. AndroidManifest.xml
<application
...
android:networkSecurityConfig="@xml/network_security_config">
...
</application>
Stpe 2. res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">www.example.com</domain>
<domain includeSubdomains="true">cdn.example.com</domain>
</domain-config>
</network-security-config>
귀찮다면…. 추천하진 않지만…
AndroidManifest.xml 파일의 <application> 부분에 android:usesCleartextTraffic="true"로 해주면 됩니다.
-
AndroidManifest.xml
<application
...
android:usesCleartextTraffic="true">
...
</application>
'Android > Android 정책 변경' 카테고리의 다른 글
| 2019 Android 정책 변경 (0) | 2019.09.02 |
|---|