Browse Source

feat: add TLS configuration option for MySQL (#384)

Tom 5 months ago
parent
commit
ce0291a8f9
6 changed files with 7 additions and 2 deletions
  1. 1 0
      README.md
  2. 1 0
      README_EN.md
  3. 2 1
      cmd/apimain.go
  4. 1 0
      conf/config.yaml
  5. 1 0
      config/gorm.go
  6. 1 1
      go.mod

+ 1 - 0
README.md

@@ -191,6 +191,7 @@
191 191
 | RUSTDESK_API_MYSQL_PASSWORD                            | mysql密码                                                                        | 111111                       |
192 192
 | RUSTDESK_API_MYSQL_ADDR                                | mysql地址                                                                        | 192.168.1.66:3306            |
193 193
 | RUSTDESK_API_MYSQL_DBNAME                              | mysql数据库名                                                                      | rustdesk                     |
194
+| RUSTDESK_API_MYSQL_TLS                             | 是否启用TLS, 可选值: `true`, `false`, `skip-verify`, `custom` | `false`                      |
194 195
 | -----RUSTDESK配置-----                                   | ----------                                                                     | ----------                   |
195 196
 | RUSTDESK_API_RUSTDESK_ID_SERVER                        | Rustdesk的id服务器地址                                                               | 192.168.1.66:21116           |
196 197
 | RUSTDESK_API_RUSTDESK_RELAY_SERVER                     | Rustdesk的relay服务器地址                                                            | 192.168.1.66:21117           |

+ 1 - 0
README_EN.md

@@ -188,6 +188,7 @@ The table below does not list all configurations. Please refer to the configurat
188 188
 | RUSTDESK_API_MYSQL_PASSWORD                            | MySQL password                                                                                                                                      | 111111                        |
189 189
 | RUSTDESK_API_MYSQL_ADDR                                | MySQL address                                                                                                                                       | 192.168.1.66:3306             |
190 190
 | RUSTDESK_API_MYSQL_DBNAME                              | MySQL database name                                                                                                                                 | rustdesk                      |
191
+| RUSTDESK_API_MYSQL_TLS                             | Whether to enable TLS, optional values: `true`, `false`, `skip-verify`, `custom` | `false`                       |
191 192
 | ----- RUSTDESK Configuration -----                     | ---------------------------------------                                                                                                             | ----------------------------- |
192 193
 | RUSTDESK_API_RUSTDESK_ID_SERVER                        | Rustdesk ID server address                                                                                                                          | 192.168.1.66:21116            |
193 194
 | RUSTDESK_API_RUSTDESK_RELAY_SERVER                     | Rustdesk relay server address                                                                                                                       | 192.168.1.66:21117            |

+ 2 - 1
cmd/apimain.go

@@ -145,11 +145,12 @@ func InitGlobal() {
145 145
 	//gorm
146 146
 	if global.Config.Gorm.Type == config.TypeMysql {
147 147
 
148
-		dsn := fmt.Sprintf("%s:%s@(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
148
+		dsn := fmt.Sprintf("%s:%s@(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local&tls=%s",
149 149
 			global.Config.Mysql.Username,
150 150
 			global.Config.Mysql.Password,
151 151
 			global.Config.Mysql.Addr,
152 152
 			global.Config.Mysql.Dbname,
153
+			global.Config.Mysql.Tls,
153 154
 		)
154 155
 
155 156
 		global.DB = orm.NewMysql(&orm.MysqlConfig{

+ 1 - 0
conf/config.yaml

@@ -31,6 +31,7 @@ mysql:
31 31
   password: ""
32 32
   addr: ""
33 33
   dbname: ""
34
+  tls: "false" # true / false / skip-verify / custom
34 35
 
35 36
 postgresql:
36 37
   host: "127.0.0.1"

+ 1 - 0
config/gorm.go

@@ -17,6 +17,7 @@ type Mysql struct {
17 17
 	Username string `mapstructure:"username"`
18 18
 	Password string `mapstructure:"password"`
19 19
 	Dbname   string `mapstructure:"dbname"`
20
+	Tls      string `mapstructure:"tls"` // true / false / skip-verify / custom
20 21
 }
21 22
 
22 23
 type Postgresql struct {

+ 1 - 1
go.mod

@@ -25,6 +25,7 @@ require (
25 25
 	github.com/swaggo/files v1.0.1
26 26
 	github.com/swaggo/gin-swagger v1.6.0
27 27
 	github.com/swaggo/swag v1.16.3
28
+	golang.org/x/crypto v0.33.0
28 29
 	golang.org/x/oauth2 v0.23.0
29 30
 	golang.org/x/text v0.22.0
30 31
 	gorm.io/driver/mysql v1.5.7
@@ -84,7 +85,6 @@ require (
84 85
 	github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
85 86
 	github.com/ugorji/go/codec v1.2.9 // indirect
86 87
 	golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect
87
-	golang.org/x/crypto v0.33.0 // indirect
88 88
 	golang.org/x/image v0.13.0 // indirect
89 89
 	golang.org/x/net v0.34.0 // indirect
90 90
 	golang.org/x/sync v0.11.0 // indirect