본문 바로가기

Development/GoLang

GO에서 테스트용 SSL 인증서 만들기

  • GO로 https 서비스 개발시 로컬에서 빌드시 사용할 임시 cert 파일을 생성하고자 한다.

  • GO 의 로컬 개발을 위해 generate_cert.go 를 이용하여 키파일 생성하기
  • go run 뒤에 경로는 go 가 설치된 경로를 찾고 해당 경로 안에서 src\crypt\tls폴더내에 generate_cert.go파일을 실행하여 키파일을 생성

 

go run c:\\Go\\src\\crypto\\tls\\generate_cert.go --host=127.0.0.1
2024/08/05 17:19:06 wrote cert.pem
2024/08/05 17:19:06 wrote key.pem
  • 생성된 cert파일과 key파일을 이용하면 정상적으로 https 서비스를 구동하게 된다

 

 

package main

import (
	"net/http"
	"github.com/gin-gonic/gin"
)

func main() {
	r := gin.Default() // default settings
	r.GET("", func(c *gin.Context) {
		c.String(http.StatusOK, "hello world!")
	}) 
	r.RunTLS(":8432", "cert.pem", "key.pem")
}

 

 

[GIN-debug] Listening and serving HTTPS on :8432
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
2024/08/05 17:20:10 http: TLS handshake error from 127.0.0.1:5779: remote error: tls: bad certificate
2024/08/05 17:20:10 http: TLS handshake error from 127.0.0.1:5780: remote error: tls: bad certificate