2

REST 呼び出しを介してサーバーと通信する iOS と Android の両方のアプリを開発しました。ユーザーがアプリに初めてログインできるようにするには、最初にサーバーの SSL 証明書をダウンロードし (ブラウザーの https 接続を介して、または openssl を使用して、DER 形式でダウンロード)、証明書をフォルダーに手動でロードする必要があります。デバイス上で (デバイスをコンピューターに接続し、そのストレージにアクセスすることにより)。アプリはログイン時にそのフォルダーをチェックし、正しい証明書がそこにある場合、ユーザーはログインできます...その後のログインでは、ユーザーは証明書を再度読​​み込む必要はありません。

上記で概説した手動プロセスを自動化する方法があるかどうか疑問に思っていましたか? これは、特にモバイル アプリの場合、かなり面倒なプロセスです。

たとえば、サーバーに接続し、証明書をデバイスに直接ダウンロードします...しかし、この種の方法にはセキュリティ上のリスクがありますか?

ありがとう

4

1 に答える 1

0

これを試して

HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
            DefaultHttpClient client = new DefaultHttpClient();
            SchemeRegistry registry = new SchemeRegistry();
            SSLSocketFactory socketFactory = SSLSocketFactory
                    .getSocketFactory();
            socketFactory
                    .setHostnameVerifier((X509HostnameVerifier) hostnameVerifier);
            registry.register(new Scheme("https", socketFactory, 443));
            SingleClientConnManager mgr = new SingleClientConnManager(
                    client.getParams(), registry);
            // defaultHttpClient
            DefaultHttpClient httpClient = new DefaultHttpClient(mgr,
                    client.getParams());
            HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);
于 2013-05-03T05:52:20.783 に答える