uokadaの見逃し三振は嫌いです

ここで述べられていることは私の個人的な意見に基づくものであり、私が所属する組織には一切の関係はありません。

GoでSSL証明書を確認するときの簡易なサーバー

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