Files
rakshasa/cert/tls.go
T
2023-03-22 11:30:21 +08:00

54 lines
1.1 KiB
Go

package cert
import (
"crypto/tls"
"crypto/x509"
_ "embed"
"log"
)
//go:embed server.crt
var rsaCert []byte
//go:embed server.key
var PublicKey []byte
var Tlsconfig *tls.Config
func init() {
//内置证书
cert, err := tls.X509KeyPair(rsaCert, PublicKey)
if err != nil {
log.Panicln(err)
return
}
certPool := x509.NewCertPool()
if ok := certPool.AppendCertsFromPEM(rsaCert); !ok {
log.Panicln("PEM err")
return
}
Tlsconfig = &tls.Config{
Certificates: []tls.Certificate{cert},
InsecureSkipVerify: true,
RootCAs: certPool,
ClientAuth: tls.RequireAndVerifyClientCert,
ClientCAs: certPool,
MaxVersion: tls.VersionTLS12,
MinVersion: tls.VersionTLS12,
CipherSuites: []uint16{
tls.TLS_AES_128_GCM_SHA256,
tls.TLS_CHACHA20_POLY1305_SHA256,
tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
},
}
}