투케이2K

3. (TWOK/ERROR) [Android] 웹뷰 (webview) 로드 시 SSL 에러 - E chromium [ERROR ssl_client_socket_impl 본문

투케이2K 에러관리

3. (TWOK/ERROR) [Android] 웹뷰 (webview) 로드 시 SSL 에러 - E chromium [ERROR ssl_client_socket_impl

투케이2K 2022. 4. 8. 18:09

[환경 설정 및 설명]

프로그램 : AndroidStudio

설 명 : 안드로이드 웹뷰 (webview) 로드 시 SSL 에러 E chromium [ERROR ssl_client_socket_impl 발생

 

[에러 원인]

1. 안드로이드 웹뷰 로드 시 로드되는 사이트 인증서 문제가 발생한 경우

2. 웹뷰 인증서 문제가 발생한 경우 무조건 통과 로직 hadler.proceed(); 처리 시 구글 플레이 스토어에 업로드 시 앱 업데이트 리젝 문제 발생

 

[해결 방법]

1. 웹뷰 로드되는 사이트 주소에 인증서 문제가 발생한 경우 사용자 판단에 의해 접속하도록 에러 팝업창 표시 및 이동 수행 로직 처리 실시 (구글 플레이스토어 앱 업데이트 통과)

//TODO [안드로이드 웹뷰 SSL 오류 체크 : 구글 플레이스토어 SSL Error Handler 대응]
@Override
public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
	try {
		Log.d("---","---");
		Log.e("//===========//","================================================");
		Log.d("","\n"+"[MainActivity > onReceivedSslError() 메소드 : ssl_client_socket_impl 에러 발생]");
		Log.d("","\n"+"[사이트 주소 : "+String.valueOf(mWebView.getUrl())+"]");
		Log.d("","\n"+"[내용 : 이 사이트의 보안 인증서는 신뢰하는 보안 인증서가 아닙니다. 계속하시겠습니까?]");
		Log.e("//===========//","================================================");
		Log.d("---","---");
		//TODO handler.proceed(); [웹사이트 이동 허용 코드]

		//TODO [사이트 이동 관련 팝업창 호출 실시]                          
		final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
		builder.setMessage("이 사이트의 보안 인증서는 신뢰하는 보안 인증서가 아닙니다. 계속하시겠습니까?");
		builder.setPositiveButton("계속하기", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				//TODO [웹사이트 이동 실시]
				handler.proceed();
			}
		});
		builder.setNegativeButton("취소", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				//TODO [웹사이트 이동 취소]
				handler.cancel();
			}
		});
		final AlertDialog dialog = builder.create();
		dialog.show();                
	}
	catch (Exception e){
		e.printStackTrace();
	}          
}
 
반응형
Comments