Mise à jour de la réponse selon la nouvelle mise à jour de la politique de sécurité de Google pour le gestionnaire d'erreurs SSL, s'il vous plaît voir cette Android Developers Help Center article.
Pour empêcher le rejet de l'application sur Google Play en cas de violation de notre politique de comportement malveillant.
Pour gérer correctement la validation du certificat SSL, changez votre code pour appeler SslErrorHandler.proceed() chaque fois que le certificat présenté par le serveur répond à vos attentes, et invoquez SslErrorHandler.cancel() dans le cas contraire. Par exemple, j'ajoute une boîte de dialogue d'alerte pour que l'utilisateur confirme et semble que Google ne montre plus d'avertissement.
@Override
public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
String message = "SSL Certificate error.";
switch (error.getPrimaryError()) {
case SslError.SSL_UNTRUSTED:
message = "The certificate authority is not trusted.";
break;
case SslError.SSL_EXPIRED:
message = "The certificate has expired.";
break;
case SslError.SSL_IDMISMATCH:
message = "The certificate Hostname mismatch.";
break;
case SslError.SSL_NOTYETVALID:
message = "The certificate is not yet valid.";
break;
}
message += " Do you want to continue anyway?";
builder.setTitle("SSL Certificate Error");
builder.setMessage(message);
builder.setPositiveButton("continue", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
handler.proceed();
}
});
builder.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
handler.cancel();
}
});
final AlertDialog dialog = builder.create();
dialog.show();
}
AVERTISSEMENT: Ceci est dangereux - il supprime toute sécurité de SSL. Je sais que Joe veut l'inclure uniquement dans son application de test, ce qui est bien, mais la communauté de la sécurité a vu de nombreux cas où ce type de code se retrouve par inadvertance dans des versions de production compromettant leur sécurité. Donc, si vous désactivez la sécurité comme ceci, soyez très prudent pour vous assurer qu'il ne se propage pas à vos versions. Merci d'avoir écouté cette annonce de service public. –