ホームページ > Java > &#&チュートリアル > Android HTTPS POST リクエストの「SSL 例外: 信頼できないサーバー証明書」エラーを解決する方法?

Android HTTPS POST リクエストの「SSL 例外: 信頼できないサーバー証明書」エラーを解決する方法?

Patricia Arquette
リリース: 2024-12-14 01:50:09
オリジナル
597 人が閲覧しました

How to Resolve

HTTPS 接続 Android

Android で HTTPS POST リクエストを試行すると、「SSL 例外: 信頼できないサーバー証明書」エラーが発生します。 HTTP では適切に機能しているにもかかわらず、HTTPS 呼び出しは失敗します。

解決策:

サーバー証明書の検証をバイパスして HTTPS 接続を確立するには、カスタム Trust Manager と Hostname Verifier を実装できます。次のように:

public static void trustAllHosts() {
    // Create a trust manager that does not validate certificate chains
    TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
            return new java.security.cert.X509Certificate[]{};
        }

        public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
        }

        public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
        }
    }};

    // Install the all-trusting trust manager
    try {
        SSLContext sc = SSLContext.getInstance("TLS");
        sc.init(null, trustAllCerts, new java.security.SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

// always verify the host - dont check for certificate
final static HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {
    public boolean verify(String hostname, SSLSession session) {
        return true;
    }
};
ログイン後にコピー

これらの設定を使用するには、HTTPS 接続セットアップ コードを次のように変更します。以下:

HttpURLConnection http = null;

if (url.getProtocol().toLowerCase().equals("https")) {
    trustAllHosts();
    HttpsURLConnection https = (HttpsURLConnection) url.openConnection();
    https.setHostnameVerifier(DO_NOT_VERIFY);
    http = https;
} else {
    http = (HttpURLConnection) url.openConnection();
}
ログイン後にコピー

以上がAndroid HTTPS POST リクエストの「SSL 例外: 信頼できないサーバー証明書」エラーを解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート