Skip to content

Commit c0a6159

Browse files
Fix client mTLS with default system trust
1 parent ea96f60 commit c0a6159

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

  • exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal

exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSender.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
import io.opentelemetry.api.impl.InstrumentationUtil;
99
import io.opentelemetry.exporter.internal.RetryUtil;
10+
import io.opentelemetry.exporter.internal.TlsUtil;
11+
import javax.net.ssl.SSLException;
1012
import io.opentelemetry.sdk.common.CompletableResultCode;
1113
import io.opentelemetry.sdk.common.export.Compressor;
1214
import io.opentelemetry.sdk.common.export.HttpResponse;
@@ -108,8 +110,19 @@ public OkHttpHttpSender(
108110
boolean isPlainHttp = endpoint.getScheme().equals("http");
109111
if (isPlainHttp) {
110112
builder.connectionSpecs(Collections.singletonList(ConnectionSpec.CLEARTEXT));
111-
} else if (sslContext != null && trustManager != null) {
112-
builder.sslSocketFactory(sslContext.getSocketFactory(), trustManager);
113+
} else if (sslContext != null) {
114+
X509TrustManager effectiveTrustManager = trustManager;
115+
116+
if (effectiveTrustManager == null) {
117+
try {
118+
effectiveTrustManager = TlsUtil.defaultTrustManager();
119+
} catch (SSLException e) {
120+
throw new IllegalStateException("Unable to initialize default trust manager", e);
121+
}
122+
}
123+
builder.sslSocketFactory(
124+
sslContext.getSocketFactory(),
125+
effectiveTrustManager);
113126
}
114127

115128
this.client = builder.build();

0 commit comments

Comments
 (0)