-
-
Save reactima/551f15fd8f2cf9b3090ed934b6d1c4db to your computer and use it in GitHub Desktop.
self signed https localhost proxy with golang
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
install go and openssl | |
mac os x: brew install go openssl | |
Generate private key and certificate signing request | |
openssl genrsa -des3 -passout pass:x -out server.pass.key 2048 | |
openssl rsa -passin pass:x -in server.pass.key -out server.key | |
rm server.pass.key | |
openssl req -new -key server.key -out server.csr | |
openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt | |
start the proxy | |
go run httpsproxy.go |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"log" | |
"net/http" | |
"net/http/httputil" | |
"net/url" | |
) | |
func main() { | |
localProxyUrl, _ := url.Parse("http://127.0.0.1:8100/") | |
localProxy := httputil.NewSingleHostReverseProxy(localProxyUrl) | |
http.Handle("/", localProxy) | |
log.Println("Serving on localhost:8080") | |
log.Fatal(http.ListenAndServeTLS(":8080", "server.crt", "server.key", nil)) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment