Skip to content

Commit fe091e8

Browse files
authored
Fix discovery-gce when run in FIPS mode (#104179)
* Fix discovery-gce when run in FIPS mode * dummy commit to re-kick off build * spotless
1 parent d035dff commit fe091e8

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

plugins/discovery-gce/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ versions << [
1010
'google' : '1.41.1',
1111
'google_api_client' : '1.33.1',
1212
'api_services_compute': 'v1-rev20220322-1.32.1',
13-
'google_oauth_client' : '1.34.1'
13+
'google_oauth_client' : '1.34.1'
1414
]
1515

1616
dependencies {

plugins/discovery-gce/src/main/java/org/elasticsearch/cloud/gce/GceInstancesServiceImpl.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
package org.elasticsearch.cloud.gce;
1010

11+
import com.google.api.client.googleapis.GoogleUtils;
1112
import com.google.api.client.googleapis.compute.ComputeCredential;
12-
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
1313
import com.google.api.client.http.GenericUrl;
1414
import com.google.api.client.http.HttpHeaders;
1515
import com.google.api.client.http.HttpRequest;
@@ -19,6 +19,7 @@
1919
import com.google.api.client.http.javanet.NetHttpTransport;
2020
import com.google.api.client.json.JsonFactory;
2121
import com.google.api.client.json.jackson2.JacksonFactory;
22+
import com.google.api.client.util.SecurityUtils;
2223
import com.google.api.services.compute.Compute;
2324
import com.google.api.services.compute.model.Instance;
2425
import com.google.api.services.compute.model.InstanceList;
@@ -35,7 +36,9 @@
3536
import org.elasticsearch.discovery.gce.RetryHttpInitializerWrapper;
3637

3738
import java.io.IOException;
39+
import java.io.InputStream;
3840
import java.security.GeneralSecurityException;
41+
import java.security.KeyStore;
3942
import java.util.ArrayList;
4043
import java.util.Collection;
4144
import java.util.Collections;
@@ -173,7 +176,12 @@ private static boolean headerContainsMetadataFlavor(HttpResponse response) {
173176
protected synchronized HttpTransport getGceHttpTransport() throws GeneralSecurityException, IOException {
174177
if (gceHttpTransport == null) {
175178
if (validateCerts) {
176-
gceHttpTransport = GoogleNetHttpTransport.newTrustedTransport();
179+
// Manually load the certificates in the jks format instead of the default p12 which is not compatible with FIPS.
180+
KeyStore certTrustStore = SecurityUtils.getJavaKeyStore();
181+
try (InputStream is = GoogleUtils.class.getResourceAsStream("google.jks")) {
182+
SecurityUtils.loadKeyStore(certTrustStore, is, "notasecret");
183+
}
184+
gceHttpTransport = new NetHttpTransport.Builder().trustCertificates(certTrustStore).build();
177185
} else {
178186
// this is only used for testing - alternative we could use the defaul keystore but this requires special configs too..
179187
gceHttpTransport = new NetHttpTransport.Builder().doNotValidateCertificate().build();

0 commit comments

Comments
 (0)