-
[iOS] App Transport Security has blocked a cleartext HTTP을 대응해보자.앱등이에게 살충제를 뿌린다./iOS 2015. 10. 11. 04:37
<남의 서버에 감놔라 배놔라 하는 App Transport Security.>
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
라는 에러메시지와 함께 Web-App 통신이 되지 않는다구요?
XCode 7에서 iOS9을 지원중이시겠군요.
1. 원인. 왜 때문일까?
ATS(App Transport Security)는 App과 Web간의 연결에 보안을 강화하기 위한 것입니다.
애플에서 지정한 여러 보안조건들로 이루어져 있습니다.
ATS는
NSURLConnection
,CFURL
,NSURLSession
에서 사용되는데 이 때 애플에서 지정한 조건을 위배했기 때문에 에러가 난겁니다.2. 애플에서는 어떤 조건을 제시했을까?
문서에서는 애플에서 지정한 이 조건을 만족하지 않으면 App - Web의 연결이 실패할 것이라고 했습니다.
- 서버에서는 최소 1.2버전 이상의 TLS를 지원해야 합니다.
- 아래와 같은 암호화를 사용해야 합니다.
- 인증서는 SHA256 이상의 해쉬알고리즘을 사용해야 하고, 2048 bit이상의 RSA 키 또는 256비트 이상의 ECC 키를 사용해야 합니다.
지원되는 암호화
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
3. 해결방안
2번에서 제시한 조건을 만족시키는 서버를 사용하시면 됩니다.
하지만 이런 서버를 구축하는동안 손가락빨아야하느냐..
임시로 이 조건들을 무시하도록 해보죠. HTTP도 통신이 되도록 해보잔 겁니다. 결론부터 말씀드리면 Info.plist를 수정할겁니다.
소스에서 info.plist열기
Info.plist 우클릭 > Open As > Source Code
여기에 소스를 추가해줄까 합니다.
아무대나 이 소스를 가져다 붙여주세요.
빌드가 잘 될겁니다.
응급처치 완료!!
'앱등이에게 살충제를 뿌린다. > iOS' 카테고리의 다른 글
[iOS] supportedInterfaceOrientations 메소드를 이해해보자. (0) 2015.10.20 [iOS] Segue의 종류 (0) 2015.10.18 [Objective-C] 숫자 세자리 마다 콤마 찍기. (2) 2015.09.24 [iOS-API는 의미를 싣고] will, did, should는 무슨 뜻이야? (0) 2015.09.13 [iOS]아이폰4,아이폰5,아이폰6 화면크기 - 아이폰개발자에게 익숙해지면 좋을 화면크기 (4) 2015.08.26