mirror of
https://gitclone.com/github.com/MetaCubeX/Clash.Meta
synced 2025-02-23 06:33:14 +08:00
chore: embed ca-certificates.crt
This commit is contained in:
parent
82517e6ba8
commit
06b5121d9e
6
.github/workflows/build.yml
vendored
6
.github/workflows/build.yml
vendored
@ -141,6 +141,12 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
go test ./...
|
go test ./...
|
||||||
|
|
||||||
|
- name: Update UA
|
||||||
|
run: |
|
||||||
|
sudo apt-get install ca-certificates
|
||||||
|
sudo update-ca-certificates
|
||||||
|
cp -f /etc/ssl/certs/ca-certificates.crt component/ca/ca-certificates.crt
|
||||||
|
|
||||||
- name: Build core
|
- name: Build core
|
||||||
env:
|
env:
|
||||||
GOOS: ${{matrix.jobs.goos}}
|
GOOS: ${{matrix.jobs.goos}}
|
||||||
|
0
component/ca/ca-certificates.crt
Normal file
0
component/ca/ca-certificates.crt
Normal file
@ -5,10 +5,12 @@ import (
|
|||||||
"crypto/sha256"
|
"crypto/sha256"
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"crypto/x509"
|
"crypto/x509"
|
||||||
|
_ "embed"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
@ -18,6 +20,11 @@ var globalCertPool *x509.CertPool
|
|||||||
var mutex sync.RWMutex
|
var mutex sync.RWMutex
|
||||||
var errNotMatch = errors.New("certificate fingerprints do not match")
|
var errNotMatch = errors.New("certificate fingerprints do not match")
|
||||||
|
|
||||||
|
//go:embed ca-certificates.crt
|
||||||
|
var _CaCertificates []byte
|
||||||
|
var DisableEmbedCa, _ = strconv.ParseBool(os.Getenv("DISABLE_EMBED_CA"))
|
||||||
|
var DisableSystemCa, _ = strconv.ParseBool(os.Getenv("DISABLE_SYSTEM_CA"))
|
||||||
|
|
||||||
func AddCertificate(certificate string) error {
|
func AddCertificate(certificate string) error {
|
||||||
mutex.Lock()
|
mutex.Lock()
|
||||||
defer mutex.Unlock()
|
defer mutex.Unlock()
|
||||||
@ -34,13 +41,20 @@ func AddCertificate(certificate string) error {
|
|||||||
|
|
||||||
func initializeCertPool() {
|
func initializeCertPool() {
|
||||||
var err error
|
var err error
|
||||||
globalCertPool, err = x509.SystemCertPool()
|
if DisableSystemCa {
|
||||||
if err != nil {
|
|
||||||
globalCertPool = x509.NewCertPool()
|
globalCertPool = x509.NewCertPool()
|
||||||
|
} else {
|
||||||
|
globalCertPool, err = x509.SystemCertPool()
|
||||||
|
if err != nil {
|
||||||
|
globalCertPool = x509.NewCertPool()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for _, cert := range trustCerts {
|
for _, cert := range trustCerts {
|
||||||
globalCertPool.AddCert(cert)
|
globalCertPool.AddCert(cert)
|
||||||
}
|
}
|
||||||
|
if !DisableEmbedCa {
|
||||||
|
globalCertPool.AppendCertsFromPEM(_CaCertificates)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func ResetCertificate() {
|
func ResetCertificate() {
|
||||||
|
Loading…
Reference in New Issue
Block a user