ホームページ >Java >&#&チュートリアル >Android で「SSL 例外: 信頼できないサーバー証明書」エラーを解決するにはどうすればよいですか?

Android で「SSL 例外: 信頼できないサーバー証明書」エラーを解決するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-27 15:06:11914ブラウズ

How Can I Resolve

Android での HTTPS 接続の問題について

Android で HTTPS 接続を確立しようとすると、「SSL 例外: 信頼されていません」が発生する場合があります。サーバー証明書」エラー。このエラーは通常、自己署名証明書または信頼できない証明書を使用するときに発生します。

証明書検証のバイパス

この問題を解決する 1 つの方法は、証明書検証を無効にすることです。ただし、このアプローチでは、信頼できないサーバーへの接続が許可されるため、セキュリティが危険にさらされます。 The Java Developers Almanac の次のコード スニペットは、すべてのホストを信頼し、証明書のチェックをバイパスする方法を示しています。

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

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

        @Override
        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();
}

プロトコルに基づく条件付き処理

または、次のこともできます。次のコードに示すように、プロトコルに基づいて接続を条件付きで処理します。スニペット:

if (url.getProtocol().toLowerCase().equals("https")) {
    trustAllHosts();
    HttpsURLConnection https = (HttpsURLConnection) url.openConnection();
    https.setHostnameVerifier(DO_NOT_VERIFY);
    http = https;
} else {
    http = (HttpURLConnection) url.openConnection();
}

これらのアプローチに従うことで、HTTPS 接続を確立し、証明書の検証をバイパスできますが、これによりセキュリティが侵害されるため、慎重に使用する必要があることに注意することが重要です。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。