2016-05-17 6 views
0

私は、とりわけ、GoogleのジオコーディングマップAPIを使用して物理アドレスを緯度と経度に変換する一連のJava Webサービスを構築中です。HttpsUrlConnectionを使用してGoogleジオコーディングサービスにアクセスする

documentationによれば、ジオコーディングサービスは、単純なGETを行うことによってアクセスできます。以下のURL:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY 

ここYOUR_API_KEYアプリに対応する実際のキーに置き換えられます。

実際の問題に遭遇して、私はHttpsUrlConnectionをJavaで使用してGET呼び出しを行う予定です。しかし、私はどの証明書を信頼するべきか混乱しています。すべての証明書を信頼するだけで安全ですか、またはGoogle SSL証明書をトラストストアにインストールして信頼する必要がありますか? man-in-the-middle攻撃についてはStack Overflowを読んでいますが、ここでは可能かどうかはわかりません。

答えて

1

に依存します。

Google SSL証明書は、既知の認証局(CA)によって署名されていますか?

もしそうなら、そのSSL証明書はJavaに同梱されているデフォルトのトラストストアになければならず、その証明書を信頼するために何もする必要はありません。

そうでない場合は、Google SSL証明書を特に信頼する必要があります。

私は個人的にInstallCertプログラムを使用して、証明書をダウンロードしてデフォルトのJava Truststoreにインストールします。ここでEDIT

はあなたのためにいくつかのサンプルコードです:

import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 

public class GoogleMapsTest { 

    public static void main(String[] args) throws Exception { 

     URL url = new URL("https://maps.google.com/"); 

     HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 

     connection.setRequestMethod("GET"); 

     InputStream is = connection.getInputStream(); 
     BufferedReader rd = new BufferedReader(new InputStreamReader(is)); 
     String line; 
     while((line = rd.readLine()) != null) { 
      System.out.println(line); 
     } 
     rd.close(); 
    } 
} 

上記のコードは、によってER(主に)How to send HTTP request in java?から盗まれ、どのようHttpURLConnection POST data to web server?

+0

FWIWを使用するように促されました、 https://maps.google.api/のGoogle SSL証明書は、「GeoTrust Global CA」によって連鎖された「Google Internet Authority G2」によって署名されています。最近ダウンロードしたバージョンのJavaに同梱されているトラストストア(cacerts)をすばやく覗いてみると、「GeoTrust Global CA」はそのトラストストアにあり、あなたはうまくいくはずです。 – hooknc

+0

私はあなたの答えをテストし、あなたに戻って、感謝します。 –

+1

実行できるはずのコード例をいくつか追加しました。ところで、私は強くHttpClientを使用して見て、HttpURLConnectionを使用してひどいことをお勧めします。 – hooknc

関連する問題