support custom cert/key files to initialize the default certificate
This commit is contained in:
parent
0695bb5e9a
commit
3271a50bdb
@ -17,13 +17,18 @@ import (
|
|||||||
"github.com/ginuerzh/gost"
|
"github.com/ginuerzh/gost"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
defaultCertFile = "cert.pem"
|
||||||
|
defaultKeyFile = "key.pem"
|
||||||
|
)
|
||||||
|
|
||||||
// Load the certificate from cert and key files, will use the default certificate if the provided info are invalid.
|
// Load the certificate from cert and key files, will use the default certificate if the provided info are invalid.
|
||||||
func tlsConfig(certFile, keyFile string) (*tls.Config, error) {
|
func tlsConfig(certFile, keyFile string) (*tls.Config, error) {
|
||||||
if certFile == "" {
|
if certFile == "" {
|
||||||
certFile = "cert.pem"
|
certFile = defaultCertFile
|
||||||
}
|
}
|
||||||
if keyFile == "" {
|
if keyFile == "" {
|
||||||
keyFile = "key.pem"
|
keyFile = defaultKeyFile
|
||||||
}
|
}
|
||||||
cert, err := tls.LoadX509KeyPair(certFile, keyFile)
|
cert, err := tls.LoadX509KeyPair(certFile, keyFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -57,15 +57,20 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
// NOTE: as of 2.6, you can use custom cert/key files to initialize the default certificate.
|
||||||
|
config, err := tlsConfig(defaultCertFile, defaultKeyFile)
|
||||||
|
if err != nil {
|
||||||
// generate random self-signed certificate.
|
// generate random self-signed certificate.
|
||||||
cert, err := gost.GenCertificate()
|
cert, err := gost.GenCertificate()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Log(err)
|
log.Log(err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
gost.DefaultTLSConfig = &tls.Config{
|
config = &tls.Config{
|
||||||
Certificates: []tls.Certificate{cert},
|
Certificates: []tls.Certificate{cert},
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
gost.DefaultTLSConfig = config
|
||||||
|
|
||||||
for _, route := range routes {
|
for _, route := range routes {
|
||||||
if err := route.serve(); err != nil {
|
if err := route.serve(); err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user