オレオレ証明書を作る
mkdir ssl
cd ssl
openssl req \
-newkey rsa:4096 \
-keyout lvh.me.key \
-x509 \
-nodes \
-new \
-out lvh.me.crt \
-subj "/CN=*.lvh.me" \
-reqexts SAN \
-extensions SAN \
-config <(cat /System/Library/OpenSSL/openssl.cnf \
<(printf '[SAN]\nsubjectAltName=DNS:lvh.me,DNS:*.lvh.me')) \
-sha256 \
-days 3650
キーチェーンに登録する
1. 作成したlvh.me.crt
を開く
open lvh.me.crt
2. キーチェーンアクセスで該当の証明書を選択しコンテキストメニューで「情報を見る」をクリック
3. 「 信頼」を開く
4. 「この証明書を使用するとき」を「常に信頼」へ変更
5. 開いているダイアログを閉じて、「証明書信頼設定に変更を加えようとしています。」で許可する。
サンプルコード
main.go
package main
import (
"fmt"
"net/http"
)
type myHandler struct{}
func (h *myHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello World!")
}
func main() {
handler := &myHandler{}
server := http.Server{
Addr: "127.0.0.1:8080",
Handler: handler,
}
println(fmt.Sprintf("Listening on tcp://%s", server.Addr))
server.ListenAndServeTLS("./ssl/lvh.me.crt", "./ssl/lvh.me.key")
}
go run ./main.go
Listening on tcp://127.0.0.1:8080
別コンソールで
open https://www.lvh.me:8080
ワイルドカードの自己証明書なので、https://hoge.lvh.me:8080
などでもよい。