add more hosts
This commit is contained in:
parent
8b07f20657
commit
8e3defba48
3 changed files with 53 additions and 18 deletions
2
go.mod
2
go.mod
|
@ -1,3 +1,5 @@
|
|||
module github.com/yi-jiayu/secure
|
||||
|
||||
go 1.15
|
||||
|
||||
require gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
|
||||
|
|
62
main.go
62
main.go
|
@ -7,6 +7,8 @@ import (
|
|||
"context"
|
||||
"flag"
|
||||
"fmt"
|
||||
"gopkg.in/yaml.v3"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
"net/http/httputil"
|
||||
|
@ -17,30 +19,33 @@ import (
|
|||
"syscall"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
CertFile string `yaml:"certfile"`
|
||||
KeyFile string `yaml:"keyfile"`
|
||||
Upstream string `yaml:"upstream"`
|
||||
Addr string `yaml:"addr"`
|
||||
}
|
||||
|
||||
var (
|
||||
certFile string
|
||||
keyFile string
|
||||
upstream string
|
||||
addr string
|
||||
version bool
|
||||
configFile string
|
||||
)
|
||||
|
||||
func init() {
|
||||
flag.StringVar(&addr, "addr", ":443", "listen address")
|
||||
flag.StringVar(&certFile, "cert", "", "path to cert file")
|
||||
flag.StringVar(&keyFile, "key", "", "path to key file")
|
||||
func getConfig() (config *Config, err error) {
|
||||
cfg := Config{}
|
||||
flag.StringVar(&configFile, "c", "", "config file")
|
||||
flag.StringVar(&cfg.Addr, "addr", ":443", "listen address")
|
||||
flag.StringVar(&cfg.CertFile, "cert", "", "path to cert file")
|
||||
flag.StringVar(&cfg.KeyFile, "key", "", "path to key file")
|
||||
flag.BoolVar(&version, "version", false, "print version string and exit")
|
||||
|
||||
flag.Usage = func() {
|
||||
fmt.Fprintf(flag.CommandLine.Output(),
|
||||
"usage: %s [-addr host:port] -cert certfile -key keyfile [-version] upstream\n",
|
||||
"usage: %s -c [config.yml] [-addr host:port] -cert certfile -key keyfile [-version] upstream\n",
|
||||
filepath.Base(os.Args[0]))
|
||||
flag.PrintDefaults()
|
||||
fmt.Fprintln(flag.CommandLine.Output(), " upstream string\n \tupstream url")
|
||||
}
|
||||
}
|
||||
|
||||
func _main() error {
|
||||
flag.Parse()
|
||||
|
||||
if version {
|
||||
|
@ -48,14 +53,37 @@ func _main() error {
|
|||
os.Exit(0)
|
||||
}
|
||||
|
||||
if configFile != "" {
|
||||
var data []byte
|
||||
data, err = ioutil.ReadFile(configFile)
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = yaml.Unmarshal(data, &cfg)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cant parse config, %v", err)
|
||||
}
|
||||
return &cfg, nil
|
||||
}
|
||||
|
||||
if flag.NArg() == 1 {
|
||||
upstream = flag.Arg(0)
|
||||
cfg.Upstream = flag.Arg(0)
|
||||
} else {
|
||||
flag.Usage()
|
||||
os.Exit(2)
|
||||
}
|
||||
|
||||
u, err := url.Parse(upstream)
|
||||
return &cfg, nil
|
||||
}
|
||||
|
||||
func _main() error {
|
||||
cfg, err := getConfig()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
u, err := url.Parse(cfg.Upstream)
|
||||
if err != nil {
|
||||
return fmt.Errorf("invalid upstream address: %v", err)
|
||||
}
|
||||
|
@ -63,7 +91,7 @@ func _main() error {
|
|||
rp := httputil.NewSingleHostReverseProxy(u)
|
||||
srv := http.Server{
|
||||
Handler: rp,
|
||||
Addr: addr,
|
||||
Addr: cfg.Addr,
|
||||
}
|
||||
|
||||
done := make(chan struct{})
|
||||
|
@ -78,8 +106,8 @@ func _main() error {
|
|||
close(done)
|
||||
}()
|
||||
|
||||
log.Printf("cert-file=%s key-file=%s listen-addr=%s upstream-url=%s", certFile, keyFile, srv.Addr, u.String())
|
||||
if err := srv.ListenAndServeTLS(certFile, keyFile); err != http.ErrServerClosed {
|
||||
log.Printf("cert-file=%s key-file=%s listen-addr=%s upstream-url=%s", cfg.CertFile, cfg.KeyFile, srv.Addr, u.String())
|
||||
if err := srv.ListenAndServeTLS(cfg.CertFile, cfg.KeyFile); err != http.ErrServerClosed {
|
||||
return fmt.Errorf("ListenAndServeTLS: %v", err)
|
||||
}
|
||||
|
||||
|
|
|
@ -104,6 +104,9 @@ subjectAltName=@san
|
|||
[ san ]
|
||||
DNS.1 = *.appspot.com
|
||||
DNS.2 = my.remarkable.com
|
||||
DNS.3 = internal.cloud.remarkable.com
|
||||
DNS.4 = ping.remarkable.com
|
||||
DNS.5 = *.remarkable.com
|
||||
# DNS.3 = any additional hosts
|
||||
EOF
|
||||
|
||||
|
@ -171,6 +174,8 @@ function patch_hosts(){
|
|||
127.0.0.1 service-manager-production-dot-remarkable-production.appspot.com
|
||||
127.0.0.1 local.appspot.com
|
||||
127.0.0.1 my.remarkable.com
|
||||
127.0.0.1 internal.cloud.remarkable.com
|
||||
127.0.0.1 ping.remarkable.com
|
||||
# rmfake_end
|
||||
EOF
|
||||
fi
|
||||
|
|
Loading…
Add table
Reference in a new issue