支持Redis的Tls连接

This commit is contained in:
kony
2025-03-21 18:47:24 +08:00
parent d99e242011
commit 02ee43cf61
5 changed files with 35 additions and 12 deletions

View File

@@ -12,6 +12,7 @@ var (
Arg_tun_local_addr string
Arg_tun_remote_addr string
Arg_redis_addr string
Arg_redis_tls_addr string
Arg_redis_pass string
Arg_redis_id int
Arg_tun_key string
@@ -33,6 +34,7 @@ func Help() {
flag.StringVar(&Arg_pprof_addr, "pprof_addr", "", "如果CPU/内存/网络异常, 可监测运行, 例如: 0.0.0.0:6060")
flag.StringVar(&Arg_redis_addr, "redis_addr", "", "Redis服务地址端口, 例如: 1.2.3.4:6379")
flag.StringVar(&Arg_redis_tls_addr, "redis_tls_addr", "", "Redis服务TLS地址端口, 例如: 1.2.3.4:16378")
flag.StringVar(&Arg_redis_pass, "redis_pass", "", "Redis服务密码, 例如: 123456")
flag.IntVar(&Arg_redis_id, "redis_id", 15, "Redis服务可使用的表ID")

View File

@@ -87,7 +87,7 @@ func GetConfig() ConfigInfo {
}
func GetAddr() string {
return GetConfig().Redis.Addr
return GetConfig().Redis.TlsAddr
}
func GetPasswd() string {

View File

@@ -28,7 +28,7 @@ func main2() {
// 第三方集成, 关注以下代码即可
go func() {
if err := pro.Init(config.Arg_redis_addr, config.Arg_redis_pass, config.Arg_redis_id); err != nil {
if err := pro.Init(); err != nil {
log.Println(err)
return
}

View File

@@ -1,6 +1,7 @@
package pro
import (
"crypto/tls"
"encoding/json"
"errors"
"fmt"
@@ -22,7 +23,7 @@ var (
m_md5_tun_key string
)
func Init(m_cli_redis_addr, m_cli_redis_pass string, m_cli_redis_id int) error {
func Init() error {
utils.Log().Debug("初始化配置中")
for {
if err := config.Init(); err != nil {
@@ -34,20 +35,40 @@ func Init(m_cli_redis_addr, m_cli_redis_pass string, m_cli_redis_id int) error {
}
utils.Log().Debug("初始化配置完成")
if m_cli_redis_addr == "" {
m_cli_redis_addr = config.GetAddr()
m_cli_redis_pass = config.GetPasswd()
m_cli_redis_id = config.GetID()
var redis_addr string
var redis_pass string
var redis_id int
tlsConfig := &tls.Config{
InsecureSkipVerify: true, // 如果使用自签名证书设置为true跳过证书验证仅用于测试
//Certificates: []tls.Certificate{cert},
ClientAuth: tls.NoClientCert, // 验证模式:请求并验证客户端证书
}
if config.Arg_redis_addr == "" && config.Arg_redis_tls_addr == "" {
redis_addr = config.GetAddr()
redis_pass = config.GetPasswd()
redis_id = config.GetID()
} else if config.Arg_redis_tls_addr != "" {
redis_addr = config.Arg_redis_tls_addr
redis_pass = config.Arg_redis_pass
redis_id = config.Arg_redis_id
} else {
redis_addr = config.Arg_redis_addr
redis_pass = config.Arg_redis_pass
redis_id = config.Arg_redis_id
tlsConfig = nil
}
m_redis_db = redis.NewClient(&redis.Options{
Addr: m_cli_redis_addr,
Password: m_cli_redis_pass,
DB: m_cli_redis_id,
//MaxRetries: 99,
Addr: redis_addr,
Password: redis_pass,
DB: redis_id,
DialTimeout: 5 * time.Second,
ReadTimeout: 5 * time.Second,
WriteTimeout: 5 * time.Second,
TLSConfig: tlsConfig,
})
if m_redis_db == nil {
return errors.New("Redis失败, 请重启程序")

View File

@@ -91,7 +91,7 @@ func GetMainUI(myWindow *fyne.Window) *fyne.Container {
m_button_start.Resize(fyne.NewSize(100, 40))
m_button_start.Disable()
go func() {
if err := pro.Init(config.Arg_redis_addr, config.Arg_redis_pass, config.Arg_redis_id); err != nil {
if err := pro.Init(); err != nil {
UILogPrintF(err.Error())
return
}