85yago / go_small_chat

小さなWebsocketによるチャット
https://azi.f5.si/chat
GNU General Public License v3.0
1 stars 0 forks source link

Other: SSL化をしよう #35

Closed 85yago closed 1 year ago

85yago commented 1 year ago

SSLに対応しないと大体のブラウザに怒られる。 とりあえずはLet's Encryptでよさそう。 https://letsencrypt.org/

85yago commented 1 year ago

https://pkg.go.dev/golang.org/x/crypto/acme/autocert?utm_source=godoc これでよさそう。WSも同じ方法で対応できるかが不明。

85yago commented 1 year ago

https://passe-de-mode.uedasoft.com/ja/tips/software/unclassified/go/go03.html https://qiita.com/kjm/items/292f6f262891c60fcaa2 参考に。

85yago commented 1 year ago

WSもほぼ同様っぽい。 https://stackoverflow.com/questions/61324875/websocket-over-tls-golang-gorilla https://pkg.go.dev/github.com/gin-gonic/gin#Engine.RunTLS これを叩けば良さそう。

85yago commented 1 year ago

ちゃんと動いてhttpsでアクセスできるのを確認済み。 ローカルで動かせるようにしたい。 方法としては、

iorar commented 1 year ago

ローカルではテスト出来なさそうなのでテスト機能を使っていきたいところ。

iorar commented 1 year ago

一応調べるとlocalhostにオレオレ証明書をくっつけてオレオレ証明書を信用してる発行者リストに追記する方法なんかがあるみたい とはいえあまりローカルの環境を破壊したくないので、やっぱりテストでがんばるのが無難そうですね

85yago commented 1 year ago

テスト機能を使ってもautocert周りのコードはどうせ動かないので、コードを分岐させる方向で行きたい。 .envに書いておくとかでよいかな?

85yago commented 1 year ago
    MODE := os.Getenv("WORKING_MODE")
    if MODE == "RELEASE" {

    } else if MODE == "DEBUG" {

    } else {

    }

こんな感じで分岐をさせる。

85yago commented 1 year ago

結局build tagを使った。

マージしたので閉じ。