私はRest Requestのためにサーバーに接続する必要のあるandoridアプリケーションを開発しました。アンドロイド特定のサーバー上のhttps - tls
私はhttpsで新しく、(ウェブ上での検索に最後の2日間を費やしました)私は何も理解していません。
サーバーは、COMODO(またはジオトラスト)で作られた証明書を持っており、キーストア(私がなされていない)を持っています。
私が使用してみました:
- Trusting all certificates using HttpClient over HTTPS (BUEが/どのように使用OpenSSLを理解することはできません)
- Java HttpsURLConnection and TLS 1.2 (ただし機能didin't)
- Android java.security.cert.CertPathValidatorException: Trust anchor for certification path not found に(これも試してみましたどちらも動作しません)。
私はこれを試しました。 Trusting all certificates using HttpClient over HTTPS
そして、動作します。問題は、私はそれがサーバーのアクセスとそれ以外のアクセスを特定のものにする必要があるということです。
これはGET/DELETE要求のための私のコードです:
public static HttpsURLConnection setHttpsURLConnection(String type, URL url, Activity activity) throws IOException {
trustEveryone(); //from the link above
HttpsURLConnection response=(HttpsURLConnection) url.openConnection();
response.setConnectTimeout(Costanti.connectionTimeout);
response.setReadTimeout(Costanti.connectionTimeout);
response.setRequestProperty("Content-type", "application/json");
response.setRequestProperty("Accept", "application/json");
response.setRequestProperty("Authorization", "Basic tfhtrhsthLkO=");
response.setRequestMethod(type);
return response;
}
私は、私は何をすべきステップバイステップを知っている必要があります。
私を助けるために必要な情報
https://www.ssllabs.com/ssltestは言う:
- TLS 1.2
- TLS 1.1
- TLS 1.0
- 鍵RSA 2048ビット(E 65537)
- 発行者ジオトラストDV SSL CA - G3
- 署名アルゴリズムSHA256withRSA
- 証明書の透明はい(証明書)
おかげで、あなたのすべて。
私は特定の問題のSTAを見ることができませんここのテント。 Androidでカールを使用しているときに証明書の検証に問題がありますか? – halfer
基本的には、認証局のルート証明書を含むカスタムトラストを使用するようにhttps接続を設定する必要があります。これを試して、エラーを投稿してください。https://developer.android.com/training/articlessecurity/-ssl.html – pedrofb