{"id":13509815,"url":"https://github.com/suyashkumar/ssl-proxy","last_synced_at":"2025-05-15T08:08:44.661Z","repository":{"id":38751912,"uuid":"144440377","full_name":"suyashkumar/ssl-proxy","owner":"suyashkumar","description":":lock: Simple zero-config SSL reverse proxy with real autogenerated certificates (LetsEncrypt, self-signed, provided)","archived":false,"fork":false,"pushed_at":"2025-03-20T00:47:44.000Z","size":61,"stargazers_count":750,"open_issues_count":21,"forks_count":91,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-04-14T12:18:24.070Z","etag":null,"topics":["autogenerated-certificates","certificate","certificate-generation","certificates","go","golang","letsencrypt","letsencrypt-certificates","nginx","proxies-https-traffic","proxy","reverse-proxy","security","self-signed-certificate","ssl","ssl-cert","ssl-certificates","ssl-proxy","tls","tls-proxy"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/suyashkumar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-12T05:26:08.000Z","updated_at":"2025-03-29T03:09:31.000Z","dependencies_parsed_at":"2024-01-07T22:44:56.752Z","dependency_job_id":"6ebc006e-068d-49dc-8930-2bbcf44f7685","html_url":"https://github.com/suyashkumar/ssl-proxy","commit_stats":{"total_commits":32,"total_committers":3,"mean_commits":"10.666666666666666","dds":0.1875,"last_synced_commit":"8b59d1fcde9fb52bba2dba103d003c4440aa1df9"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suyashkumar%2Fssl-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suyashkumar%2Fssl-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suyashkumar%2Fssl-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suyashkumar%2Fssl-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/suyashkumar","download_url":"https://codeload.github.com/suyashkumar/ssl-proxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248877967,"owners_count":21176244,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autogenerated-certificates","certificate","certificate-generation","certificates","go","golang","letsencrypt","letsencrypt-certificates","nginx","proxies-https-traffic","proxy","reverse-proxy","security","self-signed-certificate","ssl","ssl-cert","ssl-certificates","ssl-proxy","tls","tls-proxy"],"created_at":"2024-08-01T02:01:13.670Z","updated_at":"2025-04-14T12:18:38.882Z","avatar_url":"https://github.com/suyashkumar.png","language":"Go","funding_links":[],"categories":["Go","\u003ca id=\"1a9934198e37d6d06b881705b863afc8\"\u003e\u003c/a\u003e通信\u0026\u0026代理\u0026\u0026反向代理\u0026\u0026隧道","\u003ca id=\"d03d494700077f6a65092985c06bf8e8\"\u003e\u003c/a\u003e工具","security"],"sub_categories":["\u003ca id=\"56acb7c49c828d4715dce57410d490d1\"\u003e\u003c/a\u003e未分类-Proxy","\u003ca id=\"0ff94312f3ab4898f5996725133ea9d1\"\u003e\u003c/a\u003e未分类"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://suyashkumar.com/assets/img/lock.png\" width=\"64\"\u003e\n  \u003ch3 align=\"center\"\u003essl-proxy\u003c/h3\u003e\n  \u003cp align=\"center\"\u003eSimple single-command SSL reverse proxy with autogenerated certificates (LetsEncrypt, self-signed)\u003cp\u003e\n  \u003cp align=\"center\"\u003e \u003ca href=\"https://goreportcard.com/report/github.com/suyashkumar/ssl-proxy\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/suyashkumar/ssl-proxy\" alt=\"\"\u003e\u003c/a\u003e \u003ca href=\"https://travis-ci.com/suyashkumar/ssl-proxy\"\u003e\u003cimg src=\"https://travis-ci.com/suyashkumar/ssl-proxy.svg?branch=master\" /\u003e\u003c/a\u003e \u003ca href=\"https://godoc.org/github.com/suyashkumar/ssl-proxy\"\u003e\u003cimg src=\"https://godoc.org/github.com/suyashkumar/ssl-proxy?status.svg\" alt=\"\"\u003e\u003c/a\u003e \n  \u003c/p\u003e\n\u003c/p\u003e\n\nA handy and simple way to add SSL to your thing running on a VM--be it your personal jupyter notebook or your team jenkins instance. `ssl-proxy` autogenerates SSL certs and proxies HTTPS traffic to an existing HTTP server in a single command. \n\n## Usage\n### With auto self-signed certificates\n```sh\nssl-proxy -from 0.0.0.0:4430 -to 127.0.0.1:8000\n```\nThis will immediately generate self-signed certificates and begin proxying HTTPS traffic from https://0.0.0.0:4430 to http://127.0.0.1:8000. No need to ever call openssl. It will print the SHA256 fingerprint of the cert being used for you to perform manual certificate verification in the browser if you would like (before you \"trust\" the cert).\n\nI know `nginx` is often used for stuff like this, but I got tired of dealing with the boilerplate and wanted to explore something fun. So I ended up throwing this together. \n\n### With auto LetsEncrypt SSL certificates\n```sh\nssl-proxy -from 0.0.0.0:443 -to 127.0.0.1:8000 -domain=mydomain.com\n```\nThis will immediately generate, fetch, and serve real LetsEncrypt certificates for `mydomain.com` and begin proxying HTTPS traffic from https://0.0.0.0:443 to http://127.0.0.1:8000. For now, you need to ensure that `ssl-proxy` can bind port `:443` and that `mydomain.com` routes to the server running `ssl-proxy` (as you may have expected, this is not the tool you should be using if you have load-balancing over multiple servers or other deployment configurations).\n\n### Provide your own certs\n```sh\nssl-proxy -cert cert.pem -key myKey.pem -from 0.0.0.0:4430 -to 127.0.0.1:8000\n```\nYou can provide your own existing certs, of course. Jenkins still has issues serving the fullchain certs from letsencrypt properly, so this tool has come in handy for me there. \n\n### Redirect HTTP -\u003e HTTPS\nSimply include the `-redirectHTTP` flag when running the program.\n\n## Installation\nSimply download and uncompress the proper prebuilt binary for your system from the [releases tab](https://github.com/suyashkumar/ssl-proxy/releases/). Then, add the binary to your path or start using it locally (`./ssl-proxy`).\n\nIf you're using `wget`, you can fetch and uncompress the right binary for your OS using [`getbin.io`](https://github.com/suyashkumar/getbin) as follows:\n```sh\nwget -qO- \"https://getbin.io/suyashkumar/ssl-proxy\" | tar xvz \n```\nor with `curl` (note you need to provide your os if using curl as one of `(darwin, windows, linux)` below):\n```sh\ncurl -LJ \"https://getbin.io/suyashkumar/ssl-proxy?os=linux\" | tar xvz \n```\n\nShameless plug: [`suyashkumar/getbin (https://getbin.io)`](https://github.com/suyashkumar/getbin) is a general tool that can fetch the latest binaries from GitHub releases for your OS. Check it out :).  \n\n### Build from source \n#### Build from source using Docker\nYou can build `ssl-proxy` for all platforms quickly using the included Docker configurations.\n\nIf you have `docker-compose` installed:\n```sh\ndocker-compose -f docker-compose.build.yml up\n```\nwill build linux, osx, and darwin binaries (x86) and place them in a `build/` folder in your current working directory.\n#### Build from source locally\nYou must have Golang installed on your system along with `make` and [`dep`](https://github.com/golang/dep). Then simply clone the repository and run `make`. \n\n## Attribution\nIcons made by \u003ca href=\"https://www.flaticon.com/authors/those-icons\" title=\"Those Icons\"\u003eThose Icons\u003c/a\u003e from \u003ca href=\"https://www.flaticon.com/\" title=\"Flaticon\"\u003ewww.flaticon.com\u003c/a\u003e is licensed by \u003ca href=\"http://creativecommons.org/licenses/by/3.0/\" title=\"Creative Commons BY 3.0\" target=\"_blank\"\u003eCC 3.0 BY\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuyashkumar%2Fssl-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuyashkumar%2Fssl-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuyashkumar%2Fssl-proxy/lists"}