0
0

More than 1 year has passed since last update.

Go言語でHTTPSサーバーを作成する

Posted at

はじめに

Go言語はシンプルさと効率性を重視して設計されており、その強力な標準ライブラリのおかげで、HTTP/HTTPSサーバーを短時間で立ち上げることができます。
今回は、Goの net/http パッケージを使って、HTTPSサーバーを作成します。

必要なもの

  • Go言語の開発環境
  • SSL/TLS証明書と秘密鍵

SSL/TLS証明書は、通信の安全性を保証するためにHTTPS接続で必要となります。証明書は信頼された認証局から購入することも、自己署名証明書を作成することも可能です。今回は、証明書と鍵のファイル名をそれぞれ cert.pemkey.pem とします。

コード

以下が、基本的なHTTPSサーバーのコードです。

// mainパッケージを宣言します
package main

// 必要なパッケージをインポートします
import (
	"fmt"
	"log"
	"net/http"
)

// handler関数はHTTPリクエストを処理し、"Hello, HTTPS!"というレスポンスを返します
func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, "Hello, HTTPS!")
}

// main関数はプログラムのエントリーポイントです
func main() {
	// ルートパスへの全てのリクエストをhandler関数で処理するよう設定します
	http.HandleFunc("/", handler)

	// HTTPSサーバーを立ち上げます
	// サーバーのポートは443、SSL/TLS証明書のファイル名は "cert.pem"、鍵のファイル名は "key.pem" です
	// サーバーの立ち上げに失敗した場合は、エラーメッセージをログ出力します
	err := http.ListenAndServeTLS(":443", "cert.pem", "key.pem", nil)
	if err != nil {
		log.Fatal("ListenAndServe: ", err)
	}
}

注意点

このコードを実行するには、適切なSSL/TLS証明書と秘密鍵が必要です。
また、通常、ポート443を開くにはroot権限が必要なため、適切な権限でコードを実行するか、1024以上のポートを使用してください。

まとめ

Go言語を使ってHTTPSサーバーを作成する方法を解説しました。
Goの標準ライブラリを使用すれば、短時間で安全なHTTPSサーバーを立ち上げることが可能です。
この知識を活用して、安全なWebアプリケーションの開発に役立ててください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0