Programming/golang2022. 9. 5. 13:47

http 서버는 쉽게 돌렸는데, https로 어떻게 돌리나 검색.

그런데 인증서 제작과정이 더 번거로운게 함정..(그게 아니면 Let's encrypt 이런거 써야하나..)

[링크 :https://dksshddl.tistory.com/entry/GO-https-제공을-위한-인증된-SSL과-서버-개인-키-생성하기]

 

http.ListenAndServe()를 사용했는데

두개 인자(cert, key)를 더 넣어주고 TLS만 붙이면 끝!

func ListenAndServe(addr string, handler Handler) error
func ListenAndServeTLS(addr, certFile, keyFile string, handler Handler) error

 

아무생각없이 했더니 :443으로 해주면 1024 포트 이하라 root 권한 필요하니 주의

package main

import (
"io"
"log"
"net/http"
)

func main() {
http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
io.WriteString(w, "Hello, TLS!\n")
})

// One can use generate_cert.go in crypto/tls to generate cert.pem and key.pem.
log.Printf("About to listen on 8443. Go to https://127.0.0.1:8443/")
err := http.ListenAndServeTLS(":8443", "cert.pem", "key.pem", nil)
log.Fatal(err)
}

[링크 : https://pkg.go.dev/net/http#ListenAndServe]

[링크 : https://pkg.go.dev/net/http#ListenAndServeTLS]

 

귀찮으니 한번에 대충 따라해서 생성

openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
openssl rsa -in server.key -text > key.pem
openssl x509 -inform PEM -in server.crt -text > cert.pem

[링크 : https://0netw0m1ra.tistory.com/187]

'Programming > golang' 카테고리의 다른 글

golang defer 와 panic(), recover()  (0) 2022.09.06
go 루틴  (0) 2022.09.06
golang 쿠키  (0) 2022.09.02
golang http redirect  (0) 2022.09.02
golang html form post 처리하기  (0) 2022.09.02
Posted by 구차니