Google Maps fails to use TLS 1.2 in Java 8 environment

Offen
#635 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
java
Bereich
api, security

Rechercherichtung

Beginnen Sie mit dem GeoApiContext.Builder und dem im Bericht gezeigten Geocoding-Beispiel und vergleichen Sie anschließend dessen aktivierte Protokolle mit dem SSLSocket-Beispiel unter Java 8. Reproduzieren Sie die UnknownServiceException und überprüfen Sie, dass das Beispiel TLS 1.2 aushandeln kann, ohne den Aufrufercode zu ändern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

triage me type: bug

I am running Google Maps 0.10.1 under Java 1.8.0_221. When I try to run the given sample code:

GeoApiContext context = new GeoApiContext.Builder()
    .apiKey("API_KEY_HERE")
    .build();
 GeocodingResult[] results =  GeocodingApi.geocode(context,
    "1600 Amphitheatre Parkway Mountain View, CA 94043").await();
Gson gson = new GsonBuilder().setPrettyPrinting().create();
System.out.println(gson.toJson(results[0].addressComponents));

I get an exception:

java.net.UnknownServiceException: Unable to find acceptable protocols. isFallback=false, modes=[ConnectionSpec(cipherSuites=[TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA], tlsVersions=[TLS_1_3, TLS_1_2], supportsTlsExtensions=true), ConnectionSpec()], supported protocols=[TLSv1]

Google Maps believes that TLSv1 is the only supported protocol. However, if I test this by creating an SSLSocket:

SSLSocketFactory socketFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslSocket = (SSLSocket) socketFactory.createSocket("www.verisign.com", 443);
String[] protocols = sslSocket.getEnabledProtocols();

I see TLSv1, TLSv1.1, and TLSv1.2. Google Maps should be able to use TLSv1.2 like other libraries in my environment.

Vorherrschende Sprache
Java
Sterne
1.8k
Forks
972
Ø Merge
5 Std. 7 Min.
Gemergte PRs (30 T.)
1

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus googlemaps/google-maps-services-java

Alle Issues in googlemaps/google-maps-services-java

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.