googlemaps / googlemaps/google-maps-services-java

Google Maps fails to use TLS 1.2 in Java 8 environment

未关闭
#635 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
triage me type: bug
主要语言
Java
星标
1.8k
派生
973
PR 合并指标
30 天内没有已合并 PR

描述

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.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。