2017-11-08 11 views
0

httpsurlwebview으로 보는 Android App을 작성하고 있습니다. 이 webpage은 자체 서명 된 SSL 인증서를 사용하며 인증을위한 클라이언트 인증서가 필요합니다. 인증서 전달 방법 webviewWebView의 클라이언트 인증서 인증

답변

1

WebView 클래스에 WebViewClient 개체를 제공해야합니다. 서버에서 클라이언트 인증이 필요한 경우 WebView는 WebViewClient 객체의 onReceivedClientCertRequest을 통해 알립니다.

예 :

MyWebClient 클래스.

public class myWebClient extends WebViewClient 
{ 
    @Override 
    public void onReceivedClientCertRequest(WebView view, ClientCertRequest request) { 
     //HERE YOU CAN DO SOME STUFF TO RETRIEVE KEY AND CERTIFICATES 
     request.proceed(mPrivateKey, mCertificates); 
    } 
    public void onReceivedError(WebView view, int errorCode, 
           String description, String failingUrl) { 
     super.onReceivedError(view, errorCode, 
       description, failingUrl); 
    } 

    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     // TODO Auto-generated method stub 
     super.onPageStarted(view, url, favicon); 
    } 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     // TODO Auto-generated method stub 

     view.loadUrl(url); 
     return true; 

    } 
} 

MainActivity.java

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    web = (WebView) findViewById(R.id.webview01); 
    web.setWebViewClient(new myWebClient()); 
    web.getSettings().setJavaScriptEnabled(true); 
    web.loadUrl("my_url.com"); 
} 

SSL 2 방향 핸드 쉐이크를 수행하기 위하여 클라이언트 비밀 키 및 인증서 체인을 proceed(PrivateKey k, X509Certificate[] chain) 방법.