RiverMoon Tech Blog
  • 안드로이드 Retrofit2 통신 시 HTTPS가 아닌 HTTP로 설정하기
    2023년 10월 19일 10시 22분 53초에 업로드 된 글입니다.
    작성자: Moonsu99

    안드로이드에서 Retrofit2으로 서버와 통신할 때 요구되는 방식은 HTTPS다.

    프로토콜은 HTTP와 HTTPS가 존재하는데 두 프로토콜의 차이점은 보안성과 데이터 무결성의 차이에 있다.

     

      HTTP HTTPS
    보안 제공 X 제공 O
    암호화 평문전송 SSL/TLS 사용
    포트 80 443

    요약하자면, HTTP는 보안 기능이 없고 데이터를 암호화하지 않지만, HTTPS는 데이터 보안과 무결성을 제공하므로 민감한 정보를 안전하게 전송하는 데 사용된다. 웹에서는 HTTPS를 사용하는 것이 권장되며, 많은 웹사이트가 HTTPS를 통해 데이터 보안을 강화하고 있다.

     

    하지만, 불가피하게 HTTP로 통신해야 할때는

    xml - network_security_config.xml 파일을 생성하여 HTTP 연결 권한을 허용한다.

     

    network_security_config.xml

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <base-config cleartextTrafficPermitted="true">
            <trust-anchors>
                <certificates src="system" />
            </trust-anchors>
        </base-config>
    </network-security-config>

     

     

    해당 파일을 추가한 후 실행하면 HTTP에 대한 권한도 허용될 수 있다. 그러나 앱 출시 이전 도메인을 HTTPS로 변경요청을 서버 관리자 측에 요청해야 한다.

    해당 내용은 Google Play Console의 내부 테스트를 돌려보고 난 후, 세부정보에서 보안 및 신뢰에 이슈가 발생하는 것을 확인할 수 있다.

     

     

    결론 : 되도록 HTTPS를 사용하자.

    댓글