web-dev-qa-db-ja.com

Glide-javax.net.ssl.SSLHandshakeException:Java.security.cert.CertPathValidatorException:証明書パスの信頼アンカーが見つかりません

サーバーをHTTPからHTTPSに移行しました。自己署名証明書を使用してHttpUrlConnectionでネットワークリクエストを送信しましたが、機能しましたが、イメージの読み込みでは機能しません。画像の読み込みにGlideを使用しました。

javax.net.ssl.SSLHandshakeException:Java.security.cert.CertPathValidatorException:https URLから画像を読み込んでいる間に、証明書パスのトラストアンカーが見つかりません図書館

Glide.with(mContext).load(currentItem.getImage_path().replace(" ", "%20"))
     .listener(new RequestListener<String, GlideDrawable>() {
        @Override
        public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
            genericViewHolder.imageView_1.setImageResource(R.drawable.image_thumbnail);
            genericViewHolder.progressBar.setVisibility(View.GONE);
            return false;
        }

        @Override
        public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
            genericViewHolder.progressBar.setVisibility(View.GONE);
            return false;
        }
    }).into(genericViewHolder.imageView_1);

this リンクを使用してGlideModuleを使用しようとしましたが、動作しないようです。助けてください。

11
Lalit Sharma

問題は証明書に関するもので、このリンクをたどります- https://stackoverflow.com/a/39032433/4741746

これは証明書をバイパスし、システムに入力できるようにします

このリンクも参照してください- https://futurestud.io/tutorials/glide-module-example-accepting-self-signed-https-certificates

カスタムのGlideModuleクラス、OkHttpUrlLoaderクラスを作成し、上記のリンクにあるようにGlideにアタッチします

あなたは置く必要があります

<meta-data
        Android:name="io.futurestud.tutorials.glide.glidemodule.CustomImageSizeGlideModule"
        Android:value="GlideModule" />

AndroidMainifiestファイルのアプリケーションタグ内 https://github.com/fs-opensource/Android-tutorials-glide/blob/master/app/src/main/AndroidManifest.xml

7
sushant gosavi

グライド4の場合

@GlideModule
public class MyGlideModule extends AppGlideModule {

    @Override
    public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {

        //To Attach Self Signed Ssl Certificate
        /*OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .sslSocketFactory(sslSocketFactory, X509TrustManager)
                .build();*/

        //Unsafe Okhttp client
        OkHttpClient okHttpClient= UnsafeHttpsClient.getUnsafeOkHttpClient();

        registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(okHttpClient));
    }
}
4
Gowsik K C

両方の上で正解ですが、以下の依存関係も確認してくださいokhttp3-integration:4.4.0バージョンを追加または変更してください

  implementation ('com.github.bumptech.glide:okhttp3-integration:4.4.0'){
        exclude group: 'glide-parent'
    }
0
Rajesh Nasit