>  기사  >  백엔드 개발  >  Golang을 사용하여 HTTP 보안 전송 프로토콜(SSL/TLS)을 설정하는 방법은 무엇입니까?

Golang을 사용하여 HTTP 보안 전송 프로토콜(SSL/TLS)을 설정하는 방법은 무엇입니까?

WBOY
WBOY원래의
2024-06-03 12:09:571045검색

Golang에서 자체 서명된 인증서를 생성하기 위해 HTTP 보안 전송 프로토콜(SSL/TLS)을 설정하는 방법입니다. 인증서 및 키를 포함하여 Golang HTTP 서버의 TLS 구성을 구성합니다. TLS 구성을 사용하여 HTTP 서버를 만듭니다.

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

Golang에서 HTTP 보안 전송 프로토콜(SSL/TLS)을 설정하는 방법

소개

도청 및 변조로부터 웹 트래픽을 보호하는 것이 중요하며 SSL/TLS는 이러한 목표를 달성하는 핵심 기술입니다. . 이 튜토리얼은 HTTP 연결을 보호하기 위해 Golang에서 SSL/TLS를 설정하는 방법을 안내합니다.

자체 서명 인증서 생성

인증 기관(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("", "")
}

실용 사례

간단한 Golang HTTP 서버를 실행하여 SSL을 시연해 보겠습니다. / 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.