gradlew 실행 시 SSLHandshakeException

안드로이드 스투디오는 gradle을 이용해 프로젝트를 빌드할 수 있다. 명령창에서도 프로젝트 빌드를 할 수 있도록 gradlew.bat 파일(gradle의 wrapper)도 제공한다. 프로젝트의 루트(‘/’)에서 gradlew.bat를 실행하면 첫 실행 시 Gradle 사이트에서 gradle 바이너리를 받아 적당한 위치에 저장하고 설치한 후 안드로이드 프로젝트를 빌드할 수 있도록 해준다.

그런데, 아래와 같은 에러와 함께 설치부터 안되는 경우가 있다.

>gradlew
Downloading https://services.gradle.org/distributions/gradle-3.3-all.zip

Exception in thread "main" java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        ...
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        ...
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        ...
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        ...

물론 근본적인 문제 해결도 좋지만, 난 그저 명령창에서 gradle 실행하고 싶을 뿐인데..

원인은 https 프로토콜을 이용해 gradle 바이너리를 받기 때문인데 gradle 바이너리를 받은 url을 수정할 수 있다. 업무 환경 상 수정이 쉽지 않다면, SSLHandshake가 필요없는 htttp를 통해 받으면 된다. gradle-wrapper.properties 파일을 열어 distributionUrl을 https에서 http로 수정하자.

distributionUrl=http\://services.gradle.org/distributions/gradle-3.3-all.zip

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.