Tech Sheets

net/httpでHTTPSサーバーを起動する

最終更新日:2022-05-08

Goのnet/httpでHTTPSサーバーを起動することもできます。

(オレオレ)証明書を作る

opensslコマンドで作ります。ここでは鍵をdebug.key、証明書をdebug.crtにしておきます。

$ openssl genrsa -out debug.key 2048
$ openssl req -new -x509 -sha256 -key debug.key -out debug.crt -days 3650

TLS(SSL)でサーバーを起動する

http.ListenAndServeTLS()で起動します。引数に先ほど作った鍵と証明書を指定します。

package main

import (
	"fmt"
	"net/http"
)

func MyHandler(w http.ResponseWriter, r *http.Request) {
	w.WriteHeader(http.StatusOK)
	w.Write([]byte("Hello TLS"))
}

func main() {
	http.HandleFunc("/", MyHandler)
	err := http.ListenAndServeTLS(":10443", "debug.crt", "debug.key", nil)
	if err != nil {
		fmt.Printf("ERROR : %s", err)
	}
}

参照情報

Simple Golang HTTPS/TLS Examples

一覧に戻る