[Flutter]protocol TLSv1.1 is not supported 해결 기록

한상욱·2025년 10월 16일

에러해결모음

목록 보기
11/12
post-thumbnail

들어가며

신규 업데이트 버전 출시 중 TLS 관련 이슈를 마주하고 해결한 과정을 공유하려 합니다.

사건의 발단

신규 업데이트 버전 출시를 위해 QA를 진행하던 중 특정 안드로이드 디바이스에서 네트워크 오류로 인한 랜더링 이슈가 발견되었습니다.

해당 오류는 Flutter 3.35에서 발생한 이슈로 기존에 사용하던 Flutter 3.32로 릴리즈 빌드를 수행할 경우 정상적으로 동작하는 것을 확인할 수 있었습니다.

이슈로 인한 로그를 확인하던 중 원인이 되는 에러 로그를 확인한 결과 아래와 같은 오류를 확인할 수 있었습니다.

java.lang.IllegalArgumentException: protocol TLSv1.1 is not supported

프로젝트에서 사용하는 패키지 SDK가 네트워크 중 TLS이슈가 생긴듯 보였습니다.

TLS?

TLS(Transport Layer Security)는 인터넷 상의 커뮤니케이션을 위한 개인 정보와 데이터 보안을 용이하게 하기 위해 설계되어 널리 채택된 보안 프로토콜입니다.

https 프로토콜 중 암호화를 위해 사용됩니다. 또한, SSL/TLS라고 불리기도 합니다.

해결 방법

로그 메시지에 따르면 TLSv1.1은 더이상 지원되지 않는것을 알 수 있습니다. 검색을 해보니 TLSv1.1은 보안상 이슈로 인하여 최근 Android 플랫폼에서는 자체적으로 허용을 차단한다고 합니다.

3.35 버전으로 업그레이드하며 Flutter의 기본 targetSdkVersion이 상승하여 TLSv1.1로 네트워크를 수행하는 경우 차단되어 이슈가 발생했다는 가설을 세웠습니다.

예상대로, 이전 버전으로 다운그레이드 후 이슈가 발생하지 않았습니다.

TLS는 무엇일까

TLS(Transport Layer Security)는 인터넷 상의 커뮤니케이션을 위한 개인 정보와 데이터 보안을 용이하게 하기 위해 설계되어 널리 채택된 보안 프로토콜입니다.

https 프로토콜 중 암호화를 위해 사용됩니다. 또한, SSL/TLS라고 불리기도 합니다.

TLSv1.1은 보안상 이슈가 발생하여 최근에는 TLSv1.2 이후 버전이 사용된다고 하며, Android는 특정 SDK부터 자체적으로 TLSv1.1을 허용하지 않는다고 합니다.

  • Android 7.0 (API 24) 이상 → TLS 1.2 기본 지원
  • Android 10 (API 29) 이상 → TLS 1.3 지원
  • Flutter 3.x 이후 → Android 네이티브 의존성이 최신화되면서,
    TLS 1.1 이하 연결 시 SSLHandshakeException 발생 가능
  • 디바이스 제조사별 TLS 지원범위에 따라 달라짐

따라서, 추후 TLSv1.2 이후 버전으로 서버와 클라이언트 모두 마이그레이션이 되어야 할 것 같습니다.

profile
자기주도적, 지속 성장하는 개발자의 기록

0개의 댓글