Add InsecureSkipVerify to Minio Client for Storage (#23166)
Allows using Minio with untrusted certificates Closes #23128 Signed-off-by: Yarden Shoham <hrsi88@gmail.com>
This commit is contained in:
		
					parent
					
						
							
								303b72c2d1
							
						
					
				
			
			
				commit
				
					
						0e7bec1849
					
				
			
		
					 5 changed files with 28 additions and 9 deletions
				
			
		| 
						 | 
					@ -1871,6 +1871,9 @@ ROUTER = console
 | 
				
			||||||
;;
 | 
					;;
 | 
				
			||||||
;; Minio enabled ssl only available when STORAGE_TYPE is `minio`
 | 
					;; Minio enabled ssl only available when STORAGE_TYPE is `minio`
 | 
				
			||||||
;MINIO_USE_SSL = false
 | 
					;MINIO_USE_SSL = false
 | 
				
			||||||
 | 
					;;
 | 
				
			||||||
 | 
					;; Minio skip SSL verification available when STORAGE_TYPE is `minio`
 | 
				
			||||||
 | 
					;MINIO_INSECURE_SKIP_VERIFY = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
				
			||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
				
			||||||
| 
						 | 
					@ -2552,6 +2555,9 @@ ROUTER = console
 | 
				
			||||||
;;
 | 
					;;
 | 
				
			||||||
;; Minio enabled ssl only available when STORAGE_TYPE is `minio`
 | 
					;; Minio enabled ssl only available when STORAGE_TYPE is `minio`
 | 
				
			||||||
;MINIO_USE_SSL = false
 | 
					;MINIO_USE_SSL = false
 | 
				
			||||||
 | 
					;;
 | 
				
			||||||
 | 
					;; Minio skip SSL verification available when STORAGE_TYPE is `minio`
 | 
				
			||||||
 | 
					;MINIO_INSECURE_SKIP_VERIFY = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;[proxy]
 | 
					;[proxy]
 | 
				
			||||||
;; Enable the proxy, all requests to external via HTTP will be affected
 | 
					;; Enable the proxy, all requests to external via HTTP will be affected
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -854,6 +854,7 @@ Default templates for project boards:
 | 
				
			||||||
- `MINIO_LOCATION`: **us-east-1**: Minio location to create bucket only available when STORAGE_TYPE is `minio`
 | 
					- `MINIO_LOCATION`: **us-east-1**: Minio location to create bucket only available when STORAGE_TYPE is `minio`
 | 
				
			||||||
- `MINIO_BASE_PATH`: **attachments/**: Minio base path on the bucket only available when STORAGE_TYPE is `minio`
 | 
					- `MINIO_BASE_PATH`: **attachments/**: Minio base path on the bucket only available when STORAGE_TYPE is `minio`
 | 
				
			||||||
- `MINIO_USE_SSL`: **false**: Minio enabled ssl only available when STORAGE_TYPE is `minio`
 | 
					- `MINIO_USE_SSL`: **false**: Minio enabled ssl only available when STORAGE_TYPE is `minio`
 | 
				
			||||||
 | 
					- `MINIO_INSECURE_SKIP_VERIFY`: **false**: Minio skip SSL verification available when STORAGE_TYPE is `minio`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Log (`log`)
 | 
					## Log (`log`)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1268,6 +1269,7 @@ is `data/lfs` and the default of `MINIO_BASE_PATH` is `lfs/`.
 | 
				
			||||||
- `MINIO_LOCATION`: **us-east-1**: Minio location to create bucket only available when `STORAGE_TYPE` is `minio`
 | 
					- `MINIO_LOCATION`: **us-east-1**: Minio location to create bucket only available when `STORAGE_TYPE` is `minio`
 | 
				
			||||||
- `MINIO_BASE_PATH`: **lfs/**: Minio base path on the bucket only available when `STORAGE_TYPE` is `minio`
 | 
					- `MINIO_BASE_PATH`: **lfs/**: Minio base path on the bucket only available when `STORAGE_TYPE` is `minio`
 | 
				
			||||||
- `MINIO_USE_SSL`: **false**: Minio enabled ssl only available when `STORAGE_TYPE` is `minio`
 | 
					- `MINIO_USE_SSL`: **false**: Minio enabled ssl only available when `STORAGE_TYPE` is `minio`
 | 
				
			||||||
 | 
					- `MINIO_INSECURE_SKIP_VERIFY`: **false**: Minio skip SSL verification available when STORAGE_TYPE is `minio`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Storage (`storage`)
 | 
					## Storage (`storage`)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1280,6 +1282,7 @@ Default storage configuration for attachments, lfs, avatars and etc.
 | 
				
			||||||
- `MINIO_BUCKET`: **gitea**: Minio bucket to store the data only available when `STORAGE_TYPE` is `minio`
 | 
					- `MINIO_BUCKET`: **gitea**: Minio bucket to store the data only available when `STORAGE_TYPE` is `minio`
 | 
				
			||||||
- `MINIO_LOCATION`: **us-east-1**: Minio location to create bucket only available when `STORAGE_TYPE` is `minio`
 | 
					- `MINIO_LOCATION`: **us-east-1**: Minio location to create bucket only available when `STORAGE_TYPE` is `minio`
 | 
				
			||||||
- `MINIO_USE_SSL`: **false**: Minio enabled ssl only available when `STORAGE_TYPE` is `minio`
 | 
					- `MINIO_USE_SSL`: **false**: Minio enabled ssl only available when `STORAGE_TYPE` is `minio`
 | 
				
			||||||
 | 
					- `MINIO_INSECURE_SKIP_VERIFY`: **false**: Minio skip SSL verification available when STORAGE_TYPE is `minio`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
And you can also define a customize storage like below:
 | 
					And you can also define a customize storage like below:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1298,6 +1301,8 @@ MINIO_BUCKET = gitea
 | 
				
			||||||
MINIO_LOCATION = us-east-1
 | 
					MINIO_LOCATION = us-east-1
 | 
				
			||||||
; Minio enabled ssl only available when STORAGE_TYPE is `minio`
 | 
					; Minio enabled ssl only available when STORAGE_TYPE is `minio`
 | 
				
			||||||
MINIO_USE_SSL = false
 | 
					MINIO_USE_SSL = false
 | 
				
			||||||
 | 
					; Minio skip SSL verification available when STORAGE_TYPE is `minio`
 | 
				
			||||||
 | 
					MINIO_INSECURE_SKIP_VERIFY = false
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
And used by `[attachment]`, `[lfs]` and etc. as `STORAGE_TYPE`.
 | 
					And used by `[attachment]`, `[lfs]` and etc. as `STORAGE_TYPE`.
 | 
				
			||||||
| 
						 | 
					@ -1318,6 +1323,7 @@ is `data/repo-archive` and the default of `MINIO_BASE_PATH` is `repo-archive/`.
 | 
				
			||||||
- `MINIO_LOCATION`: **us-east-1**: Minio location to create bucket only available when `STORAGE_TYPE` is `minio`
 | 
					- `MINIO_LOCATION`: **us-east-1**: Minio location to create bucket only available when `STORAGE_TYPE` is `minio`
 | 
				
			||||||
- `MINIO_BASE_PATH`: **repo-archive/**: Minio base path on the bucket only available when `STORAGE_TYPE` is `minio`
 | 
					- `MINIO_BASE_PATH`: **repo-archive/**: Minio base path on the bucket only available when `STORAGE_TYPE` is `minio`
 | 
				
			||||||
- `MINIO_USE_SSL`: **false**: Minio enabled ssl only available when `STORAGE_TYPE` is `minio`
 | 
					- `MINIO_USE_SSL`: **false**: Minio enabled ssl only available when `STORAGE_TYPE` is `minio`
 | 
				
			||||||
 | 
					- `MINIO_INSECURE_SKIP_VERIFY`: **false**: Minio skip SSL verification available when STORAGE_TYPE is `minio`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Proxy (`proxy`)
 | 
					## Proxy (`proxy`)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -431,6 +431,8 @@ MINIO_BUCKET = gitea
 | 
				
			||||||
MINIO_LOCATION = us-east-1
 | 
					MINIO_LOCATION = us-east-1
 | 
				
			||||||
; Minio enabled ssl only available when STORAGE_TYPE is `minio`
 | 
					; Minio enabled ssl only available when STORAGE_TYPE is `minio`
 | 
				
			||||||
MINIO_USE_SSL = false
 | 
					MINIO_USE_SSL = false
 | 
				
			||||||
 | 
					; Minio skip SSL verification available when STORAGE_TYPE is `minio`
 | 
				
			||||||
 | 
					MINIO_INSECURE_SKIP_VERIFY = false
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
然后你在 `[attachment]`, `[lfs]` 等中可以把这个名字用作 `STORAGE_TYPE` 的值。
 | 
					然后你在 `[attachment]`, `[lfs]` 等中可以把这个名字用作 `STORAGE_TYPE` 的值。
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,6 +41,7 @@ func getStorage(rootCfg ConfigProvider, name, typ string, targetSec *ini.Section
 | 
				
			||||||
	sec.Key("MINIO_BUCKET").MustString("gitea")
 | 
						sec.Key("MINIO_BUCKET").MustString("gitea")
 | 
				
			||||||
	sec.Key("MINIO_LOCATION").MustString("us-east-1")
 | 
						sec.Key("MINIO_LOCATION").MustString("us-east-1")
 | 
				
			||||||
	sec.Key("MINIO_USE_SSL").MustBool(false)
 | 
						sec.Key("MINIO_USE_SSL").MustBool(false)
 | 
				
			||||||
 | 
						sec.Key("MINIO_INSECURE_SKIP_VERIFY").MustBool(false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if targetSec == nil {
 | 
						if targetSec == nil {
 | 
				
			||||||
		targetSec, _ = rootCfg.NewSection(name)
 | 
							targetSec, _ = rootCfg.NewSection(name)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,9 @@ package storage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"context"
 | 
						"context"
 | 
				
			||||||
 | 
						"crypto/tls"
 | 
				
			||||||
	"io"
 | 
						"io"
 | 
				
			||||||
 | 
						"net/http"
 | 
				
			||||||
	"net/url"
 | 
						"net/url"
 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
	"path"
 | 
						"path"
 | 
				
			||||||
| 
						 | 
					@ -49,6 +51,7 @@ type MinioStorageConfig struct {
 | 
				
			||||||
	Location           string `ini:"MINIO_LOCATION"`
 | 
						Location           string `ini:"MINIO_LOCATION"`
 | 
				
			||||||
	BasePath           string `ini:"MINIO_BASE_PATH"`
 | 
						BasePath           string `ini:"MINIO_BASE_PATH"`
 | 
				
			||||||
	UseSSL             bool   `ini:"MINIO_USE_SSL"`
 | 
						UseSSL             bool   `ini:"MINIO_USE_SSL"`
 | 
				
			||||||
 | 
						InsecureSkipVerify bool   `ini:"MINIO_INSECURE_SKIP_VERIFY"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// MinioStorage returns a minio bucket storage
 | 
					// MinioStorage returns a minio bucket storage
 | 
				
			||||||
| 
						 | 
					@ -92,6 +95,7 @@ func NewMinioStorage(ctx context.Context, cfg interface{}) (ObjectStorage, error
 | 
				
			||||||
	minioClient, err := minio.New(config.Endpoint, &minio.Options{
 | 
						minioClient, err := minio.New(config.Endpoint, &minio.Options{
 | 
				
			||||||
		Creds:     credentials.NewStaticV4(config.AccessKeyID, config.SecretAccessKey, ""),
 | 
							Creds:     credentials.NewStaticV4(config.AccessKeyID, config.SecretAccessKey, ""),
 | 
				
			||||||
		Secure:    config.UseSSL,
 | 
							Secure:    config.UseSSL,
 | 
				
			||||||
 | 
							Transport: &http.Transport{TLSClientConfig: &tls.Config{InsecureSkipVerify: config.InsecureSkipVerify}},
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, convertMinioErr(err)
 | 
							return nil, convertMinioErr(err)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue