인터넷 망분리 환경으로 인해 경험할 수 있는 에러였는데 어찌 저찌 해결이 되었다. 여러가지 해결 방법을 짬뽕하여 해결했다.
안드로이드 스튜디오에서 안드로이드 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 에 넣어주는 것이 중요하다.
나름 성공해서 잘 빌드하고 있다.
'dev > java' 카테고리의 다른 글
자바(JDK, JRE) 모든 버전 다운로드( 6,7,8,9,10,11,12,13,14,15, 16, 17,18,19,20,21) (8) | 2024.01.01 |
---|---|
Java Unknown Source 이유, 원인 (0) | 2021.11.17 |
자바 BCI란 뭘까? - Java BCI (Byte Code Instrumentation) #1 (1) | 2021.08.30 |
자바(JDK, JRE) 쉽고 빠른 설치, 환경 설정 방법 (1) | 2021.08.10 |
자바 해시 테이블( Hashtable), 해시 맵(HashMap) 구조와 원리 (1) | 2021.07.10 |
자바 AOP - AspectJ에 대해서 - Java AOP #5 (0) | 2021.02.16 |
자바 AOP - 이제 CGLIB를 사용해봅시다 - Java AOP #4 (0) | 2021.02.16 |
자바 AOP - CGLIB에 사용되는 ASM을 알아보자 - Java AOP #3 (0) | 2021.02.16 |