インターネットの発展に伴い、HTTPS は最新の Web アプリケーションの重要な部分になりました。データの安全な送信を保証するだけでなく、Web ページのセキュリティと信頼性も向上します。これは、Web アプリケーションにとって非常に重要です。 Golang は近年非常に人気のあるプログラミング言語であり、その内蔵ネットワーク ライブラリは HTTPS を簡単にサポートできます。
それでは、Golang で HTTPS を設定するにはどうすればよいでしょうか?
1. 証明書とキーの生成
まず、SSL 証明書とキー ファイルを生成する必要があります。 OpenSSL ツールを使用して生成できます。具体的なコマンドは次のとおりです:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
このコマンドは、RSA 暗号化タイプの証明書と、365 日間有効な秘密キー ファイル key.pem および cert.pem を生成します。
2. コードの記述
Golang では、TLS (Transport Layer Security) を使用した HTTPS のセットアップは非常に簡単です。以下は、サーバーとクライアントを含むサンプル コードです。
package main import ( "fmt" "log" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, HTTPS!") } func main() { http.HandleFunc("/", handler) server := &http.Server{ Addr: ":8080", } err := server.ListenAndServeTLS("cert.pem", "key.pem") if err != nil { log.Fatal("ListenAndServeTLS: ", err) } }
このサンプル コードでは、まず HTTP リクエストを処理する HTTP プロセッサを定義します。次に、HTTP サーバーとそのリスニング アドレスを定義します。 ListenAndServeTLS() メソッドの最初のパラメータを証明書ファイルのパスに設定し、2 番目のパラメータをキー ファイルのパスに設定することで、HTTP 接続ではなく HTTPS 接続をリッスンするように Golang に指示します。
クライアント接続の場合、https://:
package main import ( "fmt" "log" "net/http" ) func main() { response, err := http.Get("https://localhost:8080/") if err != nil { log.Fatal("Get: ", err) } defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { log.Fatal("ReadAll: ", err) } fmt.Println(string(body)) }
以上がgolangでhttpsを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。