Golang で自己署名証明書を生成するために HTTP Secure Transport Protocol (SSL/TLS) をセットアップする方法。証明書とキーを含む、Golang HTTP サーバーの TLS 構成を構成します。 TLS 構成を使用して HTTP サーバーを作成します。
Golang で HTTP Secure Transport Protocol (SSL/TLS) を設定する方法
はじめに
Web トラフィックを盗聴や改ざんから保護することは非常に重要であり、SSL/TLS はこの目標を達成するための主要なテクノロジーです。このチュートリアルでは、Golang で SSL/TLS を設定して HTTP 接続を保護する方法を説明します。
自己署名証明書を生成する
認証局 (CA) によって発行された証明書には料金がかかるため、自己署名証明書の生成は、開発およびテストの目的で実行可能なオプションです。自己署名証明書は、次のコマンドを使用して生成できます:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
自己署名証明書は独自のドメインまたは環境内でのみ信頼されるため、運用環境には適していないことに注意してください。
Golang HTTP サーバーを構成する
自己署名証明書を作成した後、Golang HTTP サーバーで SSL/TLS を構成できます:
package main import ( "crypto/tls" "fmt" "net/http" ) func main() { // 创建 TLS 配置 tlsConfig := &tls.Config{ Certificates: []tls.Certificate{ { // 读取生成的证书和密钥 Certificate: []byte("cert.pem"), PrivateKey: []byte("key.pem"), }, }, } // 使用 TLS 配置创建一个 HTTP 服务器 server := &http.Server{ Addr: ":443", TLSConfig: tlsConfig, } fmt.Println("正在启动 TLS HTTP 服务器...") server.ListenAndServeTLS("", "") }
実際的なケース
SSL をデモするために単純な Golang HTTP サーバーを実行してみましょう/ TLS の仕組み:
ターミナルで次のコマンドを実行して自己署名証明書を生成します:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
次のコードを含む server.go
という Go ファイルを作成します。 server.go
的 Go 文件,其中包含以下代码:
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello, HTTPS!") }) fmt.Println("正在启动 HTTPS 服务器...") http.ListenAndServeTLS(":443", "cert.pem", "key.pem") }
运行服务器:
go run server.go
https://localhost:443
rrreeehttps://localhost:443
)を使用してブラウザでサーバーにアクセスします。正しく設定されている場合は、「Hello, HTTPS!」というメッセージが表示されます。 🎜🎜以上がGolang を使用して HTTP セキュア トランスポート プロトコル (SSL/TLS) を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。