[fix](client): ensure proper SNI hostname extraction in TLS config

- Updated `tlsCfg.ServerName` logic to extract and set hostname (DNS) from `ServerAddr` to comply with SNI requirements.
- Utilized `net.SplitHostPort` for accurate parsing of `host:port` format.
This commit is contained in:
dalbodeule
2025-12-02 23:33:42 +09:00
parent 841ae53706
commit eb6e4a982d

View File

@@ -5,6 +5,7 @@ import (
"crypto/tls" "crypto/tls"
"crypto/x509" "crypto/x509"
"flag" "flag"
"net"
"os" "os"
"strings" "strings"
@@ -118,7 +119,13 @@ func main() {
} }
// DTLS 서버 측은 SNI(ServerName)가 HOP_SERVER_DOMAIN(cfg.Domain)과 일치하는지 검사하므로, // DTLS 서버 측은 SNI(ServerName)가 HOP_SERVER_DOMAIN(cfg.Domain)과 일치하는지 검사하므로,
// 클라이언트 TLS 설정에도 반드시 도메인을 설정해준다. // 클라이언트 TLS 설정에도 반드시 도메인을 설정해준다.
tlsCfg.ServerName = finalCfg.Domain //
// finalCfg.ServerAddr 가 "host:port" 형태이므로, SNI 에는 DNS(host) 부분만 넣어야 한다.
host := finalCfg.ServerAddr
if h, _, err := net.SplitHostPort(finalCfg.ServerAddr); err == nil && strings.TrimSpace(h) != "" {
host = h
}
tlsCfg.ServerName = host
client := dtls.NewPionClient(dtls.PionClientConfig{ client := dtls.NewPionClient(dtls.PionClientConfig{
Addr: finalCfg.ServerAddr, Addr: finalCfg.ServerAddr,