ホームページ > Java > &#&チュートリアル > Android で HTTPS 接続を確立するときに信頼できないサーバー証明書をバイパスする方法

Android で HTTPS 接続を確立するときに信頼できないサーバー証明書をバイパスする方法

DDD
リリース: 2024-12-10 16:25:12
オリジナル
904 人が閲覧しました

How to Bypass Untrusted Server Certificates When Establishing HTTPS Connections on Android?

Android での HTTPS 接続の確立

Android で HTTPS 接続を確立しようとすると、開発者は信頼できないサーバー証明書に関連する例外が発生する可能性があります。これに対処するには、サーバー証明書を受け入れることを検討してください。

すべてのホストを信頼する

証明書の検証をバイパスする 1 つの方法は、すべてのホストを信頼し、チェックを効果的に無効にすることです。これは、カスタム HostnameVerifier と TrustManager を実装することで実現できます。

// Hostname verifier that always returns true
HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {
    @Override
    public boolean verify(String hostname, SSLSession session) {
        return true;
    }
};

// Trust manager that accepts all certificates
TrustManager[] trustAllCerts = new TrustManager[]{
    new X509TrustManager() {
        @Override
        public X509Certificate[] getAcceptedIssuers() {
            return new X509Certificate[]{};
        }

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

        @Override
        public void checkServerTrusted(X509Certificate[] chain, String authType) {}
    }
};
ログイン後にコピー

次に、SSLContext を初期化し、トラスト マネージャーとホスト名検証ツールを適用します。

SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
ログイン後にコピー

使用例

HTTP 接続を作成するときは、プロトコルを確認し、次の場合は前述の設定を適用します。 HTTPS です。

HttpURLConnection http = null;
String url = "https://example.com";

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

以上がAndroid で HTTPS 接続を確立するときに信頼できないサーバー証明書をバイパスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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