mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Make internal SSH server host key path configurable (#14918)
* Make SSH server host key path configurable * make it possible to have multiple keys * Make gitea.rsa the default key * Add some more logging Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		
							
								
								
									
										12
									
								
								cmd/web.go
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								cmd/web.go
									
									
									
									
									
								
							| @@ -64,7 +64,7 @@ func runHTTPRedirector() { | ||||
| 		http.Redirect(w, r, target, http.StatusTemporaryRedirect) | ||||
| 	}) | ||||
|  | ||||
| 	var err = runHTTP("tcp", source, context2.ClearHandler(handler)) | ||||
| 	var err = runHTTP("tcp", source, "HTTP Redirector", context2.ClearHandler(handler)) | ||||
|  | ||||
| 	if err != nil { | ||||
| 		log.Fatal("Failed to start port redirection: %v", err) | ||||
| @@ -198,7 +198,7 @@ func listen(m http.Handler, handleRedirector bool) error { | ||||
| 		if handleRedirector { | ||||
| 			NoHTTPRedirector() | ||||
| 		} | ||||
| 		err = runHTTP("tcp", listenAddr, context2.ClearHandler(m)) | ||||
| 		err = runHTTP("tcp", listenAddr, "Web", context2.ClearHandler(m)) | ||||
| 	case setting.HTTPS: | ||||
| 		if setting.EnableLetsEncrypt { | ||||
| 			err = runLetsEncrypt(listenAddr, setting.Domain, setting.LetsEncryptDirectory, setting.LetsEncryptEmail, context2.ClearHandler(m)) | ||||
| @@ -211,22 +211,22 @@ func listen(m http.Handler, handleRedirector bool) error { | ||||
| 				NoHTTPRedirector() | ||||
| 			} | ||||
| 		} | ||||
| 		err = runHTTPS("tcp", listenAddr, setting.CertFile, setting.KeyFile, context2.ClearHandler(m)) | ||||
| 		err = runHTTPS("tcp", listenAddr, "Web", setting.CertFile, setting.KeyFile, context2.ClearHandler(m)) | ||||
| 	case setting.FCGI: | ||||
| 		if handleRedirector { | ||||
| 			NoHTTPRedirector() | ||||
| 		} | ||||
| 		err = runFCGI("tcp", listenAddr, context2.ClearHandler(m)) | ||||
| 		err = runFCGI("tcp", listenAddr, "FCGI Web", context2.ClearHandler(m)) | ||||
| 	case setting.UnixSocket: | ||||
| 		if handleRedirector { | ||||
| 			NoHTTPRedirector() | ||||
| 		} | ||||
| 		err = runHTTP("unix", listenAddr, context2.ClearHandler(m)) | ||||
| 		err = runHTTP("unix", listenAddr, "Web", context2.ClearHandler(m)) | ||||
| 	case setting.FCGIUnix: | ||||
| 		if handleRedirector { | ||||
| 			NoHTTPRedirector() | ||||
| 		} | ||||
| 		err = runFCGI("unix", listenAddr, context2.ClearHandler(m)) | ||||
| 		err = runFCGI("unix", listenAddr, "Web", context2.ClearHandler(m)) | ||||
| 	default: | ||||
| 		log.Fatal("Invalid protocol: %s", setting.Protocol) | ||||
| 	} | ||||
|   | ||||
| @@ -14,16 +14,16 @@ import ( | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| ) | ||||
|  | ||||
| func runHTTP(network, listenAddr string, m http.Handler) error { | ||||
| 	return graceful.HTTPListenAndServe(network, listenAddr, m) | ||||
| func runHTTP(network, listenAddr, name string, m http.Handler) error { | ||||
| 	return graceful.HTTPListenAndServe(network, listenAddr, name, m) | ||||
| } | ||||
|  | ||||
| func runHTTPS(network, listenAddr, certFile, keyFile string, m http.Handler) error { | ||||
| 	return graceful.HTTPListenAndServeTLS(network, listenAddr, certFile, keyFile, m) | ||||
| func runHTTPS(network, listenAddr, name, certFile, keyFile string, m http.Handler) error { | ||||
| 	return graceful.HTTPListenAndServeTLS(network, listenAddr, name, certFile, keyFile, m) | ||||
| } | ||||
|  | ||||
| func runHTTPSWithTLSConfig(network, listenAddr string, tlsConfig *tls.Config, m http.Handler) error { | ||||
| 	return graceful.HTTPListenAndServeTLSConfig(network, listenAddr, tlsConfig, m) | ||||
| func runHTTPSWithTLSConfig(network, listenAddr, name string, tlsConfig *tls.Config, m http.Handler) error { | ||||
| 	return graceful.HTTPListenAndServeTLSConfig(network, listenAddr, name, tlsConfig, m) | ||||
| } | ||||
|  | ||||
| // NoHTTPRedirector tells our cleanup routine that we will not be using a fallback http redirector | ||||
| @@ -43,9 +43,9 @@ func NoInstallListener() { | ||||
| 	graceful.GetManager().InformCleanup() | ||||
| } | ||||
|  | ||||
| func runFCGI(network, listenAddr string, m http.Handler) error { | ||||
| func runFCGI(network, listenAddr, name string, m http.Handler) error { | ||||
| 	// This needs to handle stdin as fcgi point | ||||
| 	fcgiServer := graceful.NewServer(network, listenAddr) | ||||
| 	fcgiServer := graceful.NewServer(network, listenAddr, name) | ||||
|  | ||||
| 	err := fcgiServer.ListenAndServe(func(listener net.Listener) error { | ||||
| 		return fcgi.Serve(listener, m) | ||||
|   | ||||
| @@ -46,14 +46,14 @@ func runLetsEncrypt(listenAddr, domain, directory, email string, m http.Handler) | ||||
| 		go func() { | ||||
| 			log.Info("Running Let's Encrypt handler on %s", setting.HTTPAddr+":"+setting.PortToRedirect) | ||||
| 			// all traffic coming into HTTP will be redirect to HTTPS automatically (LE HTTP-01 validation happens here) | ||||
| 			var err = runHTTP("tcp", setting.HTTPAddr+":"+setting.PortToRedirect, myACME.HTTPChallengeHandler(http.HandlerFunc(runLetsEncryptFallbackHandler))) | ||||
| 			var err = runHTTP("tcp", setting.HTTPAddr+":"+setting.PortToRedirect, "Let's Encrypt HTTP Challenge", myACME.HTTPChallengeHandler(http.HandlerFunc(runLetsEncryptFallbackHandler))) | ||||
| 			if err != nil { | ||||
| 				log.Fatal("Failed to start the Let's Encrypt handler on port %s: %v", setting.PortToRedirect, err) | ||||
| 			} | ||||
| 		}() | ||||
| 	} | ||||
|  | ||||
| 	return runHTTPSWithTLSConfig("tcp", listenAddr, tlsConfig, context2.ClearHandler(m)) | ||||
| 	return runHTTPSWithTLSConfig("tcp", listenAddr, "Web", tlsConfig, context2.ClearHandler(m)) | ||||
| } | ||||
|  | ||||
| func runLetsEncryptFallbackHandler(w http.ResponseWriter, r *http.Request) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user