Skip to content

Commit 19a4d04

Browse files
authored
Enable TLS certificate verification for Elasticsearch client (#179)
Instead of silently disabling TLS verification when tlsServerName is not provided, always verify server certificates. An empty ServerName defers to http.Transport's default hostname check against the request URL; set tlsServerName only when the certificate DNS name differs from the host used to reach the server. Related-To: OSPRH-33323 Signed-off-by: Daniel Pawlik <dpawlik@redhat.com>
1 parent 8bf99fd commit 19a4d04

2 files changed

Lines changed: 8 additions & 9 deletions

File tree

plugins/application/elasticsearch/pkg/lib/client.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,10 @@ func createTLSConfig(serverName string, certFile string, keyFile string, caFile
4444

4545
tlsConfig := &tls.Config{
4646
MinVersion: tls.VersionTLS13,
47+
ServerName: serverName,
4748
Certificates: []tls.Certificate{cert},
4849
RootCAs: certPool,
4950
}
50-
if len(serverName) == 0 {
51-
tlsConfig.InsecureSkipVerify = true
52-
} else {
53-
tlsConfig.ServerName = serverName
54-
}
5551

5652
return tlsConfig, nil
5753
}

plugins/application/elasticsearch/pkg/lib/client_test.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,15 +123,18 @@ func TestElasticsearchTLSConf(t *testing.T) {
123123
cacrtpath := path.Join(tmpdir, "ca.pem")
124124
require.NoError(t, os.WriteFile(cacrtpath, []byte(testCa), 0600))
125125

126-
t.Run("Test insecure connection.", func(t *testing.T) {
126+
t.Run("Test explicit server name.", func(t *testing.T) {
127127
tlsConf, err := createTLSConfig("overmind.localdomain", certpath, keypath, cacrtpath)
128128
require.NoError(t, err)
129129
assert.Equal(t, "overmind.localdomain", tlsConf.ServerName)
130-
assert.Equal(t, false, tlsConf.InsecureSkipVerify)
130+
assert.False(t, tlsConf.InsecureSkipVerify)
131+
})
131132

132-
tlsConf, err = createTLSConfig("", certpath, keypath, cacrtpath)
133+
t.Run("Test empty server name defers to transport.", func(t *testing.T) {
134+
tlsConf, err := createTLSConfig("", certpath, keypath, cacrtpath)
133135
require.NoError(t, err)
134-
assert.Equal(t, true, tlsConf.InsecureSkipVerify)
136+
assert.Equal(t, "", tlsConf.ServerName)
137+
assert.False(t, tlsConf.InsecureSkipVerify)
135138
})
136139
}
137140

0 commit comments

Comments
 (0)