Browse Source

support custom cert/key files to initialize the default certificate

pull/282/head
ginuerzh 8 years ago
parent
commit
3271a50bdb
  1. 9
      cmd/gost/cfg.go
  2. 19
      cmd/gost/main.go

9
cmd/gost/cfg.go

@ -17,13 +17,18 @@ import (
"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.
func tlsConfig(certFile, keyFile string) (*tls.Config, error) {
if certFile == "" {
certFile = "cert.pem"
certFile = defaultCertFile
}
if keyFile == "" {
keyFile = "key.pem"
keyFile = defaultKeyFile
}
cert, err := tls.LoadX509KeyPair(certFile, keyFile)
if err != nil {

19
cmd/gost/main.go

@ -57,15 +57,20 @@ func init() {
}
func main() {
// generate random self-signed certificate.
cert, err := gost.GenCertificate()
// 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 {
log.Log(err)
os.Exit(1)
}
gost.DefaultTLSConfig = &tls.Config{
Certificates: []tls.Certificate{cert},
// generate random self-signed certificate.
cert, err := gost.GenCertificate()
if err != nil {
log.Log(err)
os.Exit(1)
}
config = &tls.Config{
Certificates: []tls.Certificate{cert},
}
}
gost.DefaultTLSConfig = config
for _, route := range routes {
if err := route.serve(); err != nil {

Loading…
Cancel
Save