구글플레이 앱 등록 거부사유 : SSL Error Handler
- 구글 플레이 앱 등록 거부 사유 : SSL Error Handler 문제
- 2016년 11월 30일자로 안전하지 않은 onReceivedSslError 사용한 앱은 등록이 되지 않음
- 이 에러는 WebView에서 발생
- 원인
- SSL 인증서가 있는 홈페이지를 인증서가 없이 연결할 때 발생하는 에러
- 편법으로 간단하게 무시하는 방법을 사용했다가 거부됨
- 해결방법
- 인증서를 받아서 Android 폴더에 넣고 해결해야 함
- 사용자에게 무시하고 사용할 지 여부를 판단하게 하면 됨
- 사이트의 인증서 확인 방법
- 참조 : https://m.blog.naver.com/PostView.nhn?blogId=iedddwww&logNo=220928986022&proxyReferer=https%3A%2F%2Fwww.google.com%2F
- 인증서 확인 사이트
- 내 홈페이지 확인 예
- https://data.kma.go.kr 확인 예
- 이전 코드 : 편법으로 SSL을 무시하고 접속(2016년 11월 30일 이후 막힘)
123456789101112webView.setWebViewClient(new WebViewClient(){@Overridepublic void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {handler.proceed();}@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}}); //크롬,사파리 대신 내부 웹뷰 클라이언트로 지정 - 오류 수정 코드 : 사용자에게 사용 여부를 묻기
123456789101112131415161718192021222324252627282930webView.setWebViewClient(new WebViewClient(){@Overridepublic void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {//handler.proceed();final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());builder.setMessage("ssl 인증서가 올바르지 않습니다. 계속 진행하시겠습니까?");builder.setPositiveButton("continue", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {handler.proceed();}});builder.setNegativeButton("cancel", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {handler.cancel();}});final AlertDialog dialog = builder.create();dialog.show();}@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}}); //크롬,사파리 대신 내부 웹뷰 클라이언트로 지정