Skip to content

Commit 4bf4671

Browse files
author
𝐘𝐨𝐬𝐞𝐛𝐲𝐭𝐞
authored
refactor: simplify TLS configuration by removing unnecessary parameters and ensuring proper usage throughout the codebase
1 parent e8e9b71 commit 4bf4671

4 files changed

Lines changed: 28 additions & 20 deletions

File tree

cmd/nodepass/core.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ func createCore(parsedURL *url.URL, logger *logs.Logger) (interface{ Run() }, er
7171
}
7272

7373
func getTLSProtocol(parsedURL *url.URL, logger *logs.Logger) (string, *tls.Config) {
74-
tlsConfig, err := internal.NewTLSConfig(version)
74+
tlsConfig, err := internal.NewTLSConfig()
7575
if err != nil {
7676
logger.Error("Generate TLS config failed: %v", err)
7777
logger.Warn("TLS code-0: nil cert")

internal/client.go

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

33
import (
44
"context"
5+
"crypto/tls"
56
"encoding/json"
67
"fmt"
78
"io"
@@ -224,16 +225,18 @@ func (c *Client) initTunnelPool() error {
224225
}
225226

226227
func (c *Client) tunnelHandshake() error {
227-
scheme := "http"
228-
if c.serverPort == "443" {
229-
scheme = "https"
230-
}
231-
232-
req, _ := http.NewRequest(http.MethodGet, scheme+"://"+c.tunnelAddr+"/", nil)
228+
req, _ := http.NewRequest(http.MethodGet, "https://"+c.tunnelAddr+"/", nil)
233229
req.Host = c.serverName
234230
req.Header.Set("Authorization", "Bearer "+c.generateAuthToken())
235231

236-
client := &http.Client{}
232+
client := &http.Client{
233+
Transport: &http.Transport{
234+
TLSClientConfig: &tls.Config{
235+
InsecureSkipVerify: true,
236+
},
237+
},
238+
}
239+
237240
resp, err := client.Do(req)
238241
if err != nil {
239242
return fmt.Errorf("tunnelHandshake: %w", err)

internal/common.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
"crypto/sha256"
1212
"crypto/tls"
1313
"crypto/x509"
14-
"crypto/x509/pkix"
1514
"encoding/base64"
1615
"encoding/hex"
1716
"encoding/json"
@@ -245,7 +244,7 @@ func getEnvAsDuration(name string, defaultValue time.Duration) time.Duration {
245244
return defaultValue
246245
}
247246

248-
func NewTLSConfig(name string) (*tls.Config, error) {
247+
func NewTLSConfig() (*tls.Config, error) {
249248
private, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
250249
if err != nil {
251250
return nil, err
@@ -258,13 +257,10 @@ func NewTLSConfig(name string) (*tls.Config, error) {
258257

259258
template := x509.Certificate{
260259
SerialNumber: serialNumber,
261-
Subject: pkix.Name{
262-
Organization: []string{name},
263-
},
264-
NotBefore: time.Now(),
265-
NotAfter: time.Now().AddDate(1, 0, 0),
266-
KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
267-
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
260+
NotBefore: time.Now(),
261+
NotAfter: time.Now().AddDate(1, 0, 0),
262+
KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
263+
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
268264
}
269265

270266
crtBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, &private.PublicKey, private)

internal/server.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,15 +233,24 @@ func (s *Server) tunnelHandshake() error {
233233
close(done)
234234
})
235235

236-
server := &http.Server{Handler: handler}
237-
go server.Serve(s.tunnelListener)
236+
tlsConfig := s.tlsConfig
237+
if tlsConfig == nil {
238+
tlsConfig, _ = NewTLSConfig()
239+
}
240+
241+
server := &http.Server{
242+
Handler: handler,
243+
TLSConfig: tlsConfig,
244+
ErrorLog: s.logger.StdLogger(),
245+
}
246+
go server.ServeTLS(s.tunnelListener, "", "")
238247

239248
select {
240249
case <-done:
241250
server.Close()
242251
s.clientIP = clientIP
243252
if s.tlsCode == "1" {
244-
if newTLSConfig, err := NewTLSConfig(""); err == nil {
253+
if newTLSConfig, err := NewTLSConfig(); err == nil {
245254
newTLSConfig.MinVersion = tls.VersionTLS13
246255
s.tlsConfig = newTLSConfig
247256
s.logger.Info("TLS code-1: RAM cert regenerated with TLS 1.3")

0 commit comments

Comments
 (0)