SSL証明書を更新する前に本番にエイやで作業する前に簡単に確認できるTLSサーバーを書いた。
ファイル名とかは最初固定だったけど一応引数で取れるようにしてみた。
* うちの運用体制だとこれで十分なので固定してても十分に足りる。
package main import ( "io" "log" "net/http" "flag" "fmt" ) var keyfile, crtfile string var port int func init(){ flag.IntVar(&port, "port", 443, "listen port") flag.StringVar(&keyfile, "keyfile", "server.key", "ssl server.key") flag.StringVar(&crtfile ,"crtfile", "server.crt", "ssl server.crt") flag.Parse() } func main() { var srv http.Server srv.Addr = fmt.Sprintf("localhost:%d", port) http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "Hello World!") }) log.Printf("Listening on " + srv.Addr) log.Fatal(srv.ListenAndServeTLS(crtfile, keyfile)) }
flagパッケージはflag.XXXVarってやるほうが使いやすいね〜
flag - The Go Programming Language