1
이동을 사용하여 앱을 만들고 있는데 ListenAndServeTLS
기능을 사용하여 https 서버를 시작하려고합니다.ListenAndServeTLS에 인증서와 키를 문자열로 전달
func StartServer() {
defer config.CapturePanic()
c := config.GetInstance()
serverAddress := fmt.Sprintf(":%s", c.GetConfig().ServerPort)
server := http.Server{Addr: serverAddress}
log.Info("Starting local server")
http.HandleFunc("/", login.Handler)
http.HandleFunc("/login", login.Handler)
http.HandleFunc("/settings", settings.Handler)
//cert, _ := data.Asset("my-cert.pem")
//key, _ := data.Asset("my-key.pem")
err := server.ListenAndServeTLS("my-cert.crt", "my-cert.key")
if err != nil {
log.WithError(err).Fatal("Error stopping local server")
}
}
것은 내가 내 인증서와 내 실행 파일 내부의 키를 포함하고 문자열 또는 바이트 배열로하여 server.ListeAndServeTLS
기능에 전달하고자하는 것입니다 : 여기 내 코드입니다. 그러나이 함수는 이러한 유형의 인수를 사용하지 않습니다. 이것을 할 또 다른 방법이 있습니까?
참고 : 개인용 키를 클라이언트 응용 프로그램에 포함시키는 것은 좋지 않지만, 여기서 수행하려고하는 것은 https://localhost:8080
으로 호스트되는 구성 웹 페이지를 만드는 것입니다.
안녕하십니까. 답장을 보내 주셔서 감사합니다. 여러분의 제안에 따라 코드를 변경했지만'tls.Loadx509KeyPair()'함수는 인증서 파일에 대한 경로와 키 파일에 대한 경로를 요구하며이 정보를 포함하는 바이트 배열은 필요하지 않습니다. 귀하의 코드를 실행할 때 나는이 오류가 발생했습니다 : '열기 : 시스템이 지정된 파일을 찾을 수 없습니다.' – Felipe
좋은 지적. 나는'tls.X509KeyPair'를 사용할 답안을 편집했습니다. 앞으로 [Loadx509KeyPair] (https://golang.org/src/crypto/tls/tls.go?s=5407:5474#L168)의 출처를보고 그 기능을 확인하십시오. – Marc
안녕하세요,'tls.X509KeyPair'를 사용하도록 변경되었으며 모든 것이 작동합니다. 도와 주셔서 감사합니다! – Felipe