HTTP Proxy dazupacken #10

Open
opened 2024-08-16 14:01:36 +02:00 by leon · 0 comments
leon commented 2024-08-16 14:01:36 +02:00 (Migrated from git.leon.wtf)

Aktivierbar, indem man z.B. ssh leon@myturn.leon.wtf -R ... -p 222 http angibt, dann würde stattdessen ein kleiner Reverse Proxy mit SSL-Termination gestartet werden:

package main

import (
    "log"
    "net/http"
    "net/http/httputil"
    "net/url"
)

func main() {
    // Das Ziel, an das weitergeleitet werden soll
    target, err := url.Parse("http://localhost:9000")
    if err != nil {
        log.Fatal(err)
    }

    // Reverse Proxy erstellen
    proxy := httputil.NewSingleHostReverseProxy(target)

    // Handler für den Reverse Proxy
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        proxy.ServeHTTP(w, r)
    })

    // SSL-Zertifikate laden
    certFile := "/path/to/your/cert.pem"
    keyFile := "/path/to/your/key.pem"

    // HTTPS Server mit SSL-Termination starten
    log.Println("Starting HTTPS server on :8443")
    err = http.ListenAndServeTLS(":8443", certFile, keyFile, nil)
    if err != nil {
        log.Fatal(err)
    }
}
Aktivierbar, indem man z.B. `ssh leon@myturn.leon.wtf -R ... -p 222 http` angibt, dann würde stattdessen ein kleiner Reverse Proxy mit SSL-Termination gestartet werden: ```go package main import ( "log" "net/http" "net/http/httputil" "net/url" ) func main() { // Das Ziel, an das weitergeleitet werden soll target, err := url.Parse("http://localhost:9000") if err != nil { log.Fatal(err) } // Reverse Proxy erstellen proxy := httputil.NewSingleHostReverseProxy(target) // Handler für den Reverse Proxy http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { proxy.ServeHTTP(w, r) }) // SSL-Zertifikate laden certFile := "/path/to/your/cert.pem" keyFile := "/path/to/your/key.pem" // HTTPS Server mit SSL-Termination starten log.Println("Starting HTTPS server on :8443") err = http.ListenAndServeTLS(":8443", certFile, keyFile, nil) if err != nil { log.Fatal(err) } } ```
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
leon/myturn#10
No description provided.