What is local-ssl-proxy?
The local-ssl-proxy npm package is a tool that allows you to create a local HTTPS proxy server. This is particularly useful for development purposes when you need to test your application over HTTPS without deploying it to a remote server.
What are local-ssl-proxy's main functionalities?
Create a basic HTTPS proxy
This feature allows you to create a basic HTTPS proxy server. You specify the source port (where the proxy listens) and the target port (where the actual server is running). You also provide the paths to your SSL key and certificate.
const localSslProxy = require('local-ssl-proxy');
localSslProxy.start({
source: 3000,
target: 3001,
ssl: {
key: './path/to/your/private-key.pem',
cert: './path/to/your/certificate.pem'
}
});
Custom SSL options
This feature allows you to customize SSL options further by providing additional parameters like passphrase and CA certificate.
const localSslProxy = require('local-ssl-proxy');
localSslProxy.start({
source: 3000,
target: 3001,
ssl: {
key: './path/to/your/private-key.pem',
cert: './path/to/your/certificate.pem',
passphrase: 'yourPassphrase',
ca: './path/to/your/ca.pem'
}
});
Logging and debugging
This feature allows you to enable logging and debugging to get more insights into the proxy's operations. You can set the log level to 'debug' to get detailed logs.
const localSslProxy = require('local-ssl-proxy');
localSslProxy.start({
source: 3000,
target: 3001,
ssl: {
key: './path/to/your/private-key.pem',
cert: './path/to/your/certificate.pem'
},
logLevel: 'debug'
});
Other packages similar to local-ssl-proxy
http-proxy
The http-proxy package is a popular library for creating HTTP proxies. It supports both HTTP and HTTPS proxies and offers a wide range of customization options. Compared to local-ssl-proxy, http-proxy is more versatile but may require more configuration for simple use cases.
node-http-proxy
node-http-proxy is another robust solution for creating HTTP and HTTPS proxies. It is highly configurable and supports various proxying scenarios. While it offers more features than local-ssl-proxy, it can be more complex to set up for basic HTTPS proxying.
redbird
Redbird is a modern reverse proxy for node that supports HTTP, HTTPS, and WebSockets. It is designed to be easy to use and configure, making it a good alternative to local-ssl-proxy for developers who need more advanced proxying capabilities.
local-ssl-proxy

Simple SSL HTTP proxy using a self-signed certificate. Intended for local development only.
Quick Start
The package supports immediate use via npx
or you can install it
globally.
Use via npx
:
npx local-ssl-proxy
Install globally:
npm install -g local-ssl-proxy
Usage
To start a proxy from port 9001
to 9000
run:
local-ssl-proxy --source 9001 --target 9000
Start your web server on the target port (9000
in the example) and navigate to https://localhost:<source-port>
(https://localhost:9001 in the example). You'll get a warning because the certificate is self-signed, this is safe to ignore during development.
Using a dynamic DNS provider such as noip or DynDNS or a static IP (if you have one) you can open a port in your firewall to allow external sites to call into your web server. This is great for developing applications using OAuth without having to deploy externally.
Advanced
You can also pass a configuration file, this helps share setups with team members. These can contain multiple proxies that local-ssl-proxy
will open concurrently.
Example config:
{
"My proxy": {
"source": 3001,
"target": 3000
},
"Another proxy": {
"source": 9999,
"target": 9000
}
}
And run the proxy with the configuration file:
local-ssl-proxy --config config.json
Run SSL proxy with a self-signed trusted certificate
You can use it to host any domain, just change localhost to anything you like, wildcards are also supported.
- Install mkcert (
choco install mkcert
/ brew install mkcert
)
- Run
mkcert -install
- Run
mkcert localhost
- Run
local-ssl-proxy --key localhost-key.pem --cert localhost.pem --source 9001 --target 9000