티스토리 뷰


인터넷 망분리 환경으로 인해 경험할 수 있는 에러였는데 어찌 저찌 해결이 되었다. 여러가지 해결 방법을 짬뽕하여 해결했다. 

 

안드로이드 스튜디오에서 안드로이드 apk 빌드를 gradle로 시작하는데

 

PKIX path building failed

 

unable to find valid certification path to requested target

 

를 보게 되었다. 주요 내용은 아래와 같은데 ... 

 

sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
unable to find valid certification path to requested target

 

회사 인터넷 환경에서 ssl 혹은 프록시 환경으로 막히는 것이라고 한다. 더 자세한건 잘 모르겠는데 인터넷에서 해결하는 방법은 인증서 파일을 보안 담당자한테 받으라고... 나오는데 굳이 연락하고 싶지 않아 다른 방법을 찾아보았다. 

 

역시 찾아보니 내부적으로 주소만 알면 다운로드 해주는 방법이 있었고 받았다. 이 글을 찾아볼 정도면 아래 내용 정리로도 충분히 할수 있다고 생각한다. 아니라면 댓글 달아주면 보완하겠음.

 


-- InstallCert.java 다운로드
curl -O https://gist.githubusercontent.com/lesstif/cd26f57b7cfd2cd55241b20e05b5cd93/raw/InstallCert.java

-- java 파일 class 컴파일
javac InstallCert.java

-- 회사도메인 cert 다운로드
java -cp ./ InstallCert  [회사도메인 ex) google.com]

Added certificate to keystore 'jssecacerts' using alias '[도메인별명]'

keytool -exportcert -keystore jssecacerts -storepass changeit -file output.cert -alias [도메인별명]
keytool -importcert -keystore "C:/Program Files/Android/Android Studio/jre/lib/security/cacerts" -storepass changeit -file output.cert -alias [도메인별명]

 

회사 도메인을 알아내는건 어렵지 않을것이고 java -cp ./ InstallCert  [회사도메인 ex) google.com] 를 입력하게 되면 1번인지 2번인지 선택하게 나오는데 1,2번 해보고 되는놈으로 선택했다. 

 

InstallCert를 실행하면 jssecacerts 파일로 떨어졌고 이를 keytool을 활용해서 output.cert로 변환한 다음에 다시 keytool로 import 하는 과정이다. 이 import 할 때 안드로이드 스튜디오가 참조하는 jre환경에 lib/security/cacerts 에 넣어주는 것이 중요하다. 

 

나름 성공해서 잘 빌드하고 있다. 

 


댓글
최근에 올라온 글
최근에 달린 댓글