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 |
'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 |