ホームページ  >  記事  >  バックエンド開発  >  Golang を使用して HTTP セキュア トランスポート プロトコル (SSL/TLS) を設定するにはどうすればよいですか?

Golang を使用して HTTP セキュア トランスポート プロトコル (SSL/TLS) を設定するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-06-03 12:09:571004ブラウズ

Golang で自己署名証明書を生成するために HTTP Secure Transport Protocol (SSL/TLS) をセットアップする方法。証明書とキーを含む、Golang HTTP サーバーの TLS 構成を構成します。 TLS 構成を使用して HTTP サーバーを作成します。

如何使用 Golang 设置 HTTP 安全传输协议(SSL/TLS)?

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 の仕組み:

  1. ターミナルで次のコマンドを実行して自己署名証明書を生成します:

    openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
  2. 次のコードを含む 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")
    }
  3. 运行服务器:

    go run server.go
  4. 在浏览器中使用安全的 HTTPS 协议(例如 https://localhost:443rrreee
🎜サーバーを実行します: 🎜rrreee🎜🎜 安全なHTTPSプロトコル(例: https://localhost:443)を使用してブラウザでサーバーにアクセスします。正しく設定されている場合は、「Hello, HTTPS!」というメッセージが表示されます。 🎜🎜

以上がGolang を使用して HTTP セキュア トランスポート プロトコル (SSL/TLS) を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。