Skip to content

Commit 2189b6c

Browse files
authored
fix: codeql for disabled TLS cert check (#109)
1 parent dc83631 commit 2189b6c

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

cmd/connect-gateway/main.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ var (
2828
func main() {
2929
var gatewayAddress, logLevel, opaAddress, oidcIssuerURL, externalHost, tunnelAuthMode string
3030
var gatewayPort, opaPort int
31-
var enableAuth, enableMetrics, oidcInsecureSkipVerify bool
31+
var enableAuth, enableMetrics, oidcInsecureSkipVerify, tlsInsecureSkipVerify bool
3232
var connectionProbeInterval time.Duration
3333
flag.StringVar(&gatewayAddress, "address", "0.0.0.0", "Address to listen on for edge connection gateway")
3434
flag.IntVar(&gatewayPort, "port", 8080, "Port to listen on for edge connection gateway")
@@ -37,6 +37,7 @@ func main() {
3737
flag.StringVar(&logLevel, "log-level", "info", "Log levels: info, debug, trace, warn")
3838
flag.StringVar(&oidcIssuerURL, "oidc-issuer-url", "", "OIDC Issuer URL")
3939
flag.BoolVar(&oidcInsecureSkipVerify, "oidc-insecure-skip-verify", false, "OIDC Insecure Skip Verify")
40+
flag.BoolVar(&tlsInsecureSkipVerify, "tls-insecure-skip-verify", false, "Skip TLS certificate verification for client connections")
4041
flag.StringVar(&externalHost, "external-host", "", "External host for the gateway")
4142

4243
flag.StringVar(&opaAddress, "opa-address", "http://localhost", "Address to opa")
@@ -77,6 +78,7 @@ func main() {
7778
server.WithExternalHost(externalHost),
7879
server.WithOIDCIssuerURL(oidcIssuerURL),
7980
server.WithOIDCInsecureSkipVerify(oidcInsecureSkipVerify),
81+
server.WithTLSInsecureSkipVerify(tlsInsecureSkipVerify),
8082
server.WithCleanupTicker(clientCleanupTicker),
8183
server.WithConnectionProbeTicker(connectionProbeTicker),
8284
)

internal/server/server.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ type Server struct {
3939
externalHost string
4040
oidcIssuerURL string
4141
oidcInsecureSkipVerify bool
42+
tlsInsecureSkipVerify bool
4243
opaAddress string
4344
opaPort int
4445
cleanupTicker *time.Ticker
@@ -124,6 +125,12 @@ func WithOIDCInsecureSkipVerify(insecureSkipVerify bool) ServerOptions {
124125
}
125126
}
126127

128+
func WithTLSInsecureSkipVerify(insecureSkipVerify bool) ServerOptions {
129+
return func(s *Server) {
130+
s.tlsInsecureSkipVerify = insecureSkipVerify
131+
}
132+
}
133+
127134
// Build creates a new Server with the configured options
128135
func NewServer(options ...ServerOptions) (s *Server, err error) {
129136
server := &Server{
@@ -203,19 +210,22 @@ func (s *Server) GetClient(tunnelID string, timeout string) (*http.Client, error
203210
return nil, err
204211
}
205212

206-
// If the CA pool is not nil or the client cert is not empty, set the TLS config
213+
// Set up TLS configuration based on available certs and security settings
207214
if caPool != nil || len(cca.Certificate) != 0 {
208215
tlsConfig := &tls.Config{
209216
RootCAs: caPool,
210217
Certificates: []tls.Certificate{cca},
211-
InsecureSkipVerify: true,
218+
InsecureSkipVerify: s.tlsInsecureSkipVerify,
219+
}
220+
transport.TLSClientConfig = tlsConfig
221+
} else {
222+
// set up basic TLS config
223+
tlsConfig := &tls.Config{
224+
InsecureSkipVerify: s.tlsInsecureSkipVerify,
212225
}
213226
transport.TLSClientConfig = tlsConfig
214227
}
215228

216-
// TODO: Read insecure skip verify from the config
217-
// And add it to the TLS config regardless of the existence of the CA pool
218-
219229
client := &http.Client{
220230
Transport: transport,
221231
}

0 commit comments

Comments
 (0)