golangサーバのhttps(wss)対応の方法
スマホから位置情報を取得するところまできたが、https(wss)対応にしないと位置情報が取り出せないようです(かなりしつこく聞いていましたが、すっかり忘れていました)。
で、今のGolangのサーバプログラムをhttps対応にすべく、色々試したのですが、なんかこれで動いているようなので、要点だけ記載します。
Step.1
まず、
の、mkcertを使って生成した鍵(“algo.key"と"algo.crt")をディレクトリに放り込む
Step.2
serverXX.goの、サーバ作成部を以下のように変更する
/*
log.Fatal(http.ListenAndServe(*addr, nil)) // localhost:8080で起動をセット
*/
var httpErr error
if _, err := os.Stat("./algo.crt"); err == nil {
fmt.Println("file ", "algo.crt found switching to https")
if httpErr = http.ListenAndServeTLS(*addr, "algo.crt", "algo.key", nil); httpErr != nil {
log.Fatal("The process exited with https error: ", httpErr.Error())
}
} else {
httpErr = http.ListenAndServe(*addr, nil)
if httpErr != nil {
log.Fatal("The process exited with http error: ", httpErr.Error())
}
}
Step.3
htmlファイルの、"http://"を、片っ端から"https://"に書き換える。
さくっと動いて気持ち悪いのですけど、まあ動くのであれば、なんでも良いです。