Golang에서 자체 서명된 인증서를 생성하기 위해 HTTP 보안 전송 프로토콜(SSL/TLS)을 설정하는 방법입니다. 인증서 및 키를 포함하여 Golang HTTP 서버의 TLS 구성을 구성합니다. TLS 구성을 사용하여 HTTP 서버를 만듭니다.
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 작동 방식:
터미널에서 다음 명령을 실행하여 자체 서명된 인증서를 생성합니다.
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
rrreee https://localhost:443
)을 사용하여 브라우저에서 서버에 액세스하세요. 올바르게 설정되면 "Hello, HTTPS!" 메시지가 표시됩니다. 🎜🎜위 내용은 Golang을 사용하여 HTTP 보안 전송 프로토콜(SSL/TLS)을 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!