Skip to content

Commit 4676b26

Browse files
committed
Allow self signed certs for HTTPS backends (#16)
1 parent dc6eb0f commit 4676b26

File tree

4 files changed

+23
-22
lines changed

4 files changed

+23
-22
lines changed

defs/options.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ const (
2828
OptionUploadSize = "upload-size"
2929
OptionDuration = "duration"
3030
OptionSecure = "secure"
31+
OptionSkipCertVerify = "skip-cert-verify"
3132
OptionNoPreAllocate = "no-pre-allocate"
3233
OptionVersion = "version"
3334
OptionLocalJSON = "local-json"

go.sum

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,12 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
88
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
99
github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
1010
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
11-
github.com/go-ping/ping v0.0.0-20200914212621-54d38cd396bf h1:Si56g5S0exdNxcek5HDYtBFR5gkhO80lzOzhVKuyjWg=
12-
github.com/go-ping/ping v0.0.0-20200914212621-54d38cd396bf/go.mod h1:35JbSyV/BYqHwwRA6Zr1uVDm1637YlNOU61wI797NPI=
1311
github.com/go-ping/ping v0.0.0-20200918120429-e8ae07c3cec8 h1:shBkr1XYT+CHuE5EGfVkAG+wmjCyFq0N2/IG1uOIaSg=
1412
github.com/go-ping/ping v0.0.0-20200918120429-e8ae07c3cec8/go.mod h1:35JbSyV/BYqHwwRA6Zr1uVDm1637YlNOU61wI797NPI=
1513
github.com/gocarina/gocsv v0.0.0-20200302151839-87c60d755c58 h1:rRQm5os6ffGTukb42ZgKWOFfdFrocrNkLcjPYRP1tm0=
1614
github.com/gocarina/gocsv v0.0.0-20200302151839-87c60d755c58/go.mod h1:5YoVOkjYAQumqlV356Hj3xeYh4BdZuLE0/nRkf2NKkI=
1715
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
1816
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
19-
github.com/maddie/go-ping v0.0.0-20200311033510-5e9a13ec8da6 h1:ApVK0ZXs0wyZmj4dSelnorxkJguUhVLXxT+ghrXtNQY=
20-
github.com/maddie/go-ping v0.0.0-20200311033510-5e9a13ec8da6/go.mod h1:IYhVIzcOSIO1fLDdEz4JFidYhLPmmW3dchKuengmL9s=
21-
github.com/maddie/go-ping v0.0.0-20200915081652-c89bd3fdbeb7 h1:TQhvzZ+MLgKsxVB5eElemqN7SQ5ZL1YDuSD1W63JIGA=
22-
github.com/maddie/go-ping v0.0.0-20200915081652-c89bd3fdbeb7/go.mod h1:35JbSyV/BYqHwwRA6Zr1uVDm1637YlNOU61wI797NPI=
23-
github.com/maddie/go-ping v0.0.0-20200916030256-52ca90ca7d12/go.mod h1:35JbSyV/BYqHwwRA6Zr1uVDm1637YlNOU61wI797NPI=
24-
github.com/maddie/go-ping v0.0.0-20200916055352-b3642c5a335e h1:7F2YtzZ+fwwzGWd+82Avnt4hswPDXaqZ2fZO6+RW3U8=
25-
github.com/maddie/go-ping v0.0.0-20200916055352-b3642c5a335e/go.mod h1:35JbSyV/BYqHwwRA6Zr1uVDm1637YlNOU61wI797NPI=
2617
github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU=
2718
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
2819
github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE=
@@ -45,8 +36,6 @@ github.com/urfave/cli/v2 v2.1.1/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2
4536
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
4637
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
4738
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
48-
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8=
49-
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
5039
golang.org/x/net v0.0.0-20200904194848-62affa334b73 h1:MXfv8rhZWmFeqX3GNZRsd6vOLoaCHjYEX3qkRo3YBUA=
5140
golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
5241
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=

main.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,10 @@ func main() {
158158
Usage: "Use HTTPS instead of HTTP when communicating with\n" +
159159
"\tLibreSpeed.org operated servers",
160160
},
161+
&cli.BoolFlag{
162+
Name: defs.OptionSkipCertVerify,
163+
Usage: "Skip verifying SSL certificate for HTTPS connections (self-signed certs)",
164+
},
161165
&cli.BoolFlag{
162166
Name: defs.OptionNoPreAllocate,
163167
Usage: "Do not pre allocate upload data. Pre allocation is\n" +

speedtest/speedtest.go

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package speedtest
22

33
import (
44
"context"
5+
"crypto/tls"
56
"encoding/json"
67
"errors"
78
"fmt"
@@ -150,6 +151,20 @@ func SpeedTest(c *cli.Context) error {
150151
network = "ip"
151152
}
152153

154+
transport := &http.Transport{
155+
Proxy: http.ProxyFromEnvironment,
156+
DialContext: (&net.Dialer{
157+
Timeout: 30 * time.Second,
158+
KeepAlive: 30 * time.Second,
159+
}).DialContext,
160+
ForceAttemptHTTP2: true,
161+
MaxIdleConns: 100,
162+
IdleConnTimeout: 90 * time.Second,
163+
TLSHandshakeTimeout: 10 * time.Second,
164+
ExpectContinueTimeout: 1 * time.Second,
165+
TLSClientConfig: &tls.Config{InsecureSkipVerify: c.Bool(defs.OptionSkipCertVerify)},
166+
}
167+
153168
// bind to source IP address if given, or if ipv4/ipv6 is forced
154169
if src := c.String(defs.OptionSource); src != "" || (forceIPv4 || forceIPv6) {
155170
var localTCPAddr *net.TCPAddr
@@ -198,19 +213,11 @@ func SpeedTest(c *cli.Context) error {
198213

199214
// set default HTTP client's Transport to the one that binds the source address
200215
// this is modified from http.DefaultTransport
201-
transport := &http.Transport{
202-
Proxy: http.ProxyFromEnvironment,
203-
DialContext: dialContext,
204-
ForceAttemptHTTP2: true,
205-
MaxIdleConns: 100,
206-
IdleConnTimeout: 90 * time.Second,
207-
TLSHandshakeTimeout: 10 * time.Second,
208-
ExpectContinueTimeout: 1 * time.Second,
209-
}
210-
211-
http.DefaultClient.Transport = transport
216+
transport.DialContext = dialContext
212217
}
213218

219+
http.DefaultClient.Transport = transport
220+
214221
// load server list
215222
var servers []defs.Server
216223
var err error

0 commit comments

Comments
 (0)