updated the server to trust the embedded cert if no client ca is explicitly specified

This commit is contained in:
hyung-hwan 2024-12-07 21:31:06 +09:00
parent 21997e6f74
commit 6d87351e5e
2 changed files with 24 additions and 22 deletions

View File

@ -519,7 +519,9 @@ func (r *ClientRoute) ReportEvent(pts_id uint32, event_type PACKET_KIND, event_d
} else { } else {
_, err = ptc.conn.Write(data) _, err = ptc.conn.Write(data)
if err != nil { if err != nil {
r.cts.cli.log.Write(r.cts.sid, LOG_ERROR, "Failed to write to peer(%d,%d,%s,%s) - %s", r.id, pts_id, ptc.conn.RemoteAddr().String(), ptc.conn.LocalAddr().String(), err.Error()) r.cts.cli.log.Write(r.cts.sid, LOG_ERROR,
"Failed to write to peer(%d,%d,%s,%s) - %s",
r.id, pts_id, ptc.conn.RemoteAddr().String(), ptc.conn.LocalAddr().String(), err.Error())
ptc.ReqStop() ptc.ReqStop()
} }
} }

View File

@ -128,6 +128,7 @@ func make_tls_server_config(cfg *ServerTLSConfig) (*tls.Config, error) {
if cfg.Enabled { if cfg.Enabled {
var cert tls.Certificate var cert tls.Certificate
var cert_pool *x509.CertPool var cert_pool *x509.CertPool
var ok bool
var err error var err error
if cfg.CertText != "" && cfg.KeyText != "" { if cfg.CertText != "" && cfg.KeyText != "" {
@ -142,11 +143,7 @@ func make_tls_server_config(cfg *ServerTLSConfig) (*tls.Config, error) {
return nil, fmt.Errorf("failed to load key pair - %s", err) return nil, fmt.Errorf("failed to load key pair - %s", err)
} }
if cfg.ClientCACertText != "" || cfg.ClientCACertFile != ""{
var ok bool
cert_pool = x509.NewCertPool() cert_pool = x509.NewCertPool()
if cfg.ClientCACertText != "" { if cfg.ClientCACertText != "" {
ok = cert_pool.AppendCertsFromPEM([]byte(cfg.ClientCACertText)) ok = cert_pool.AppendCertsFromPEM([]byte(cfg.ClientCACertText))
if !ok { if !ok {
@ -162,6 +159,10 @@ func make_tls_server_config(cfg *ServerTLSConfig) (*tls.Config, error) {
if !ok { if !ok {
return nil, fmt.Errorf("failed to append certificate to pool") return nil, fmt.Errorf("failed to append certificate to pool")
} }
} else {
ok = cert_pool.AppendCertsFromPEM(hodu_tls_cert_text)
if !ok {
return nil, fmt.Errorf("failed to append certificate to pool")
} }
} }
@ -201,7 +202,6 @@ func make_tls_client_config(cfg *ClientTLSConfig) (*tls.Config, error) {
} }
cert_pool = x509.NewCertPool() cert_pool = x509.NewCertPool()
if cfg.ServerCACertText != "" { if cfg.ServerCACertText != "" {
ok = cert_pool.AppendCertsFromPEM([]byte(cfg.ServerCACertText)) ok = cert_pool.AppendCertsFromPEM([]byte(cfg.ServerCACertText))
if !ok { if !ok {