WebView
및 YouTube iframe
을 사용하여 YouTube 동영상을 시청하는 앱을 만들었습니다. 모든 URL을 저장하려면 WebViewClient
을 사용하고 Wireshark 트래픽을 해독 할 수 있도록 생성 된 개인 키를 강제로 사용하고 싶습니다 (Android 명령 줄 및 tcpdump
명령을 사용하여 앱에서 해당 트래픽을 캡처합니다).onReceivedClientCertRequest가 호출되지 않았습니다.
내 WebViewClient
클래스는 이것이다 :
private class MyWebviewClient extends WebViewClient {
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
// TODO Auto-generated method stub
super.onReceivedError(view, errorCode, description, failingUrl);
Log.d(TAG, "onReceivedError : description = " + description);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
System.out.println("********************************************");
Log.d(TAG, "shouldOverrideUrlLoading : url = " + url);
return true;
}
@Override
public void onLoadResource(WebView view, String url) {
webAppInterface.logResourceURL(url);
System.out.println("************************************ " + url + " ************************************");
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
//forcing my private key
@Override
public void onReceivedClientCertRequest(WebView view, ClientCertRequest request) {
System.out.println("test test test");
X509Certificate cert = CertificateKey.getCertificate();
X509Certificate[] mCertificates = new X509Certificate[1];
mCertificates[0] = (X509Certificate)cert;
request.proceed(CertificateKey.getKey(), mCertificates);
}
}
문제는 호출되지 않습니다 그 방법 onReceivedClientCertRequest
입니다! 나는 지문조차 얻지 못한다. 내가 실수
onReceivedSslError(view, handler, error)
을 사용하고 wireshark trafficSSL/HTTPS
을 사용하고onLoadResource
작품을) 의도 한대로
- 다른 모든 방법이 작동 자체 생성 된 인증서를 사용 중입니다. (적어도 CA가 서명하지 않았습니다.)
- 인증서와 개인 키가 모두 전화 번호 에 저장됩니다.
문제가 Android 버전 (현재 5.1) 일 수 있습니까?