Skip to content

Commit

Permalink
Use x509.SetFallbackRoots and switch away from gocertifi
Browse files Browse the repository at this point in the history
  • Loading branch information
edigaryev committed Jun 7, 2023
1 parent 1235958 commit 7df4ac1
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 22 deletions.
7 changes: 7 additions & 0 deletions cmd/cirrus/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ package main

import (
"context"
"crypto/x509"
"fmt"
"github.com/breml/rootcerts/embedded"
"github.com/cirruslabs/cirrus-cli/internal/commands"
"github.com/cirruslabs/cirrus-cli/internal/version"
"github.com/getsentry/sentry-go"
Expand All @@ -14,6 +16,11 @@ import (
)

func main() {
// Provide fallback root CA certificates
mozillaRoots := x509.NewCertPool()
mozillaRoots.AppendCertsFromPEM([]byte(embedded.MozillaCACertificatesPEM()))
x509.SetFallbackRoots(mozillaRoots)

// Initialize Sentry
var release string

Expand Down
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ require (
github.com/PaesslerAG/gval v1.2.2
github.com/antihax/optional v1.0.0
github.com/avast/retry-go v3.0.0+incompatible
github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d
github.com/breml/rootcerts v0.2.11
github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d // indirect
github.com/cirruslabs/cirrus-ci-agent v1.108.0
github.com/cirruslabs/echelon v1.9.0
github.com/cirruslabs/go-java-glob v0.1.0
Expand Down
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ github.com/bitly/go-hostpool v0.1.0/go.mod h1:4gOCgp6+NZnVqlKyZ/iBZFTAJKembaVENU
github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA=
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
github.com/breml/rootcerts v0.2.11 h1:njUAtoyZ6HUXPAPk63tGz0BEZk1/6gyfqK5fTzksHkM=
github.com/breml/rootcerts v0.2.11/go.mod h1:S/PKh+4d1HUn4HQovEB8hPJZO6pUZYrIhmXBhsegfXw=
github.com/bugsnag/bugsnag-go v1.0.5-0.20150529004307-13fd6b8acda0 h1:s7+5BfS4WFJoVF9pnB8kBk03S7pZXRdKamnV0FOl5Sc=
github.com/bugsnag/bugsnag-go v1.0.5-0.20150529004307-13fd6b8acda0/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8=
github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b h1:otBG+dV+YK+Soembjv71DPz3uX/V/6MMlSyD9JBQ6kQ=
Expand Down
3 changes: 0 additions & 3 deletions internal/worker/upstream/upstream.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"crypto/tls"
"errors"
"fmt"
"github.com/certifi/gocertifi"
"github.com/cirruslabs/cirrus-ci-agent/api"
"github.com/cirruslabs/cirrus-ci-agent/pkg/grpchelper"
"github.com/cirruslabs/cirrus-cli/internal/executor/endpoint"
Expand Down Expand Up @@ -112,10 +111,8 @@ func (upstream *Upstream) Connect(ctx context.Context) error {
if upstream.rpcInsecure {
rpcSecurity = grpc.WithTransportCredentials(insecure.NewCredentials())
} else {
certPool, _ := gocertifi.CACerts()
tlsCredentials := credentials.NewTLS(&tls.Config{
MinVersion: tls.VersionTLS13,
RootCAs: certPool,
})
rpcSecurity = grpc.WithTransportCredentials(tlsCredentials)
}
Expand Down
3 changes: 0 additions & 3 deletions pkg/executorservice/executorservice.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"crypto/tls"
"errors"
"fmt"
"github.com/certifi/gocertifi"
"github.com/cirruslabs/cirrus-ci-agent/api"
grpcretry "github.com/grpc-ecosystem/go-grpc-middleware/retry"
"google.golang.org/grpc"
Expand Down Expand Up @@ -35,10 +34,8 @@ func (p *ExecutorService) SupportedInstances() (*api.AdditionalInstancesInfo, er
defer cancel()

// Setup Cirrus CI RPC connection
certPool, _ := gocertifi.CACerts()
tlsCredentials := credentials.NewTLS(&tls.Config{
MinVersion: tls.VersionTLS13,
RootCAs: certPool,
})
conn, err := grpc.DialContext(
ctx,
Expand Down
15 changes: 0 additions & 15 deletions pkg/larker/loader/loader.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@ package loader

import (
"context"
"crypto/tls"
"errors"
"fmt"
"github.com/certifi/gocertifi"
"github.com/cirruslabs/cirrus-cli/pkg/larker/builtin"
"github.com/cirruslabs/cirrus-cli/pkg/larker/fs"
"github.com/cirruslabs/cirrus-cli/pkg/larker/resolver"
Expand All @@ -18,7 +16,6 @@ import (
starlarkjson "go.starlark.net/lib/json"
"go.starlark.net/starlark"
"go.starlark.net/starlarkstruct"
gohttp "net/http"
"os"
"path/filepath"
"strings"
Expand Down Expand Up @@ -147,18 +144,6 @@ func (loader *Loader) loadCirrusModule() (starlark.StringDict, error) {
}),
}

certPool, err := gocertifi.CACerts()
if err != nil {
http.Client = &gohttp.Client{
Transport: &gohttp.Transport{
TLSClientConfig: &tls.Config{
RootCAs: certPool,
MinVersion: tls.VersionTLS12,
},
},
}
}

httpModule, err := http.LoadModule()
if err != nil {
return nil, err
Expand Down

0 comments on commit 7df4ac1

Please sign in to comment.